上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 50 下一页

2017年2月20日

内容提供者编写步骤

摘要: 1. 写一个类继承系统的ContentProvider 2. 在清单文件中注册 3. 暗号 URI 4. 实现数据的增删改查的操作 阅读全文

posted @ 2017-02-20 19:15 LoaderMan 阅读(354) 评论(0) 推荐(0) 编辑

内容提供者的概念

摘要: * 应用场景:把应用程序的私有数据暴露出去,给其他应用程序使用 * 私有数据: /data/data/包名/ 数据库、txt、Xml 阅读全文

posted @ 2017-02-20 19:07 LoaderMan 阅读(371) 评论(0) 推荐(0) 编辑

监听电话录音

摘要: package com.example.calling; import java.io.IOException; import android.app.Service; import android.content.Context; import android.content.Intent; import android.media.MediaRecorder; import android.... 阅读全文

posted @ 2017-02-20 19:05 LoaderMan 阅读(373) 评论(0) 推荐(0) 编辑

远程服务的使用场景

摘要: 1. 阅读Android源代码 2. 手机制造厂商的服务 3. 超级大的公司写远程服务给其他程序员用 阅读全文

posted @ 2017-02-20 18:49 LoaderMan 阅读(226) 评论(0) 推荐(0) 编辑

本地服务和远程服务

摘要: * 本地服务:服务组件在自己的应用程序中 * 远程服务:服务组件不不不在自己的应用程序中 阅读全文

posted @ 2017-02-20 18:48 LoaderMan 阅读(498) 评论(0) 推荐(0) 编辑

2017年2月19日

混合方式开启服务

摘要: * 应用场景:既想服务长期运行在后台,又想调用服务里的方法 * 推荐步骤: 1. startService保证服务长期运行在后台 2. bindService绑定服务调方法 3. unBindService解绑服务,只调用onUnBind不在调用onDestroy 4. stopService停止服 阅读全文

posted @ 2017-02-19 17:02 LoaderMan 阅读(172) 评论(0) 推荐(0) 编辑

本地应用调用远程服务中的方法

摘要: * AIDL:安卓接口定义语言 ,来公开服务的接口的方式来暴露服务接口* IPC:进程间通讯 intel-process communication* AIDL编写步骤: 远程工程 1. 把IRemoteService.java接口改成.aidl的接口 2. 去掉.aidl接口文件的权限修饰符pub 阅读全文

posted @ 2017-02-19 17:02 LoaderMan 阅读(439) 评论(0) 推荐(0) 编辑

绑定服务抽取接口

摘要: 示例代码 简易的播放器: A. 写一个接口,在接口中写一个要暴露出去的方法 B. 让服务里的内部类实现这个接口 C. 在activity的连接成功后,强转为接口类型 D. 调用接口中的方法,实际上调用的时接口的实现类服务里的内部类里的方法 阅读全文

posted @ 2017-02-19 17:01 LoaderMan 阅读(343) 评论(0) 推荐(0) 编辑

绑定服务调用服务里的方法

摘要: activity绑定服务,等待服务被绑定成功后,返回服务里的内部类对象,activity在连接成功后拿到服务里的内部类对象,间接调用服务里的方法 A. 在activity中绑定服务 B. 服务被绑定成功 C. 在服务里创建一个内部类,在onBind方法中返给activity /** * 服务里的内部 阅读全文

posted @ 2017-02-19 16:51 LoaderMan 阅读(328) 评论(0) 推荐(0) 编辑

bind绑定服务的生命周期

摘要: bindService(service, conn, flags); * service :意图 * conn :activity和服务的连接通道 * flags : BIND_AUTO_CREATE 连接的时候如果有服务的对象则复用,如果服务对象不存在,则创建一个服务的对象 * 完整生命周期:on 阅读全文

posted @ 2017-02-19 16:43 LoaderMan 阅读(762) 评论(0) 推荐(0) 编辑

监听电话状态的模板代码

摘要: package com.example.calling; import android.app.Service; import android.content.Context; import android.content.Intent; import android.os.IBinder; import android.telephony.PhoneStateListener; import ... 阅读全文

posted @ 2017-02-19 16:35 LoaderMan 阅读(441) 评论(0) 推荐(0) 编辑

start开启服务的生命周期

摘要: * 完整生命周期:onCreate()-->onStartCommand()-->onDestroy() * 开启服务:onCreate()-->onStartCommand() * 停止服务:onDestroy() * 特点: 1. 服务可以被开启多次,每次开启都调用onStartCommand 阅读全文

posted @ 2017-02-19 16:32 LoaderMan 阅读(244) 评论(0) 推荐(0) 编辑

线程进程和应用程序之间的关系

摘要: * 开启应用程序,系统给应用程序创建一个Linux进程,开启一个主线程,所有的组件都运行在这个进程里的主线程中。 * 应用程序:包含有四大组件总的任何一个或者多个组件 * 进程:进程里主要运行davlik虚拟机,四大组件都运行在虚拟机中 * 线程:线程运行在进程中,进程结束,线程也就结束 阅读全文

posted @ 2017-02-19 16:29 LoaderMan 阅读(318) 评论(0) 推荐(0) 编辑

服务概述

摘要: Android中的服务Service,和Activity不同的是不能与用户交互的,不能自己启动,系统的后台运行,当程序退出时,我们没有显示的调用停止服务,那么这个Service就没有结束,它仍然在后台运行。Service和其他组件一样,都是运行在主线程中,因此不能用它来做耗时的操作。 服务一般分为两 阅读全文

posted @ 2017-02-19 16:28 LoaderMan 阅读(212) 评论(0) 推荐(0) 编辑

Android进程的生命周期

摘要: Android系统有一套 内存回收机制. 会根据优先级进行回收. Android系统会尽可能的维持程序的进程, 但是终究还是需要回收一些旧的进程节省内存提供给新的或者重要的进程使用. 进程优先级(由高到低): 1. Foreground process 前台进程 用户正在操作的应用程序的进程. 2. 阅读全文

posted @ 2017-02-19 16:27 LoaderMan 阅读(165) 评论(0) 推荐(0) 编辑

有序广播和无序广播

摘要: * 无序广播:只要发出广播,感兴趣的接收者都可以接受这个广播 sendBroadcast(intent); 发送无序广播 * SD卡插拔、应用程序的卸载安装 * 有序广播:系统发出广播,接收者按照优先级从高到低一级一级地接受,类似中央的红头文件 sendOrderedBroadcast(intent 阅读全文

posted @ 2017-02-19 16:22 LoaderMan 阅读(489) 评论(0) 推荐(0) 编辑

自定义无序广播和有序广播

摘要: package com.example.order; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import andro... 阅读全文

posted @ 2017-02-19 16:20 LoaderMan 阅读(299) 评论(0) 推荐(0) 编辑

广播接收者的特点和版本差异

摘要: * 特点:只要广播接收者安装到手机上,不管应用程序有没有启动,系统发出广播后,注册了这个广播的接收者,都可以接受这个广播。 * 版本差异:如果用户强行停止了接收者的应用程序,系统发出广播时,在低版本可以接受广播;在高版本,google工程师为了安全,就接收不到这个广播了,如果想接受这个广播,冲新启动 阅读全文

posted @ 2017-02-19 16:16 LoaderMan 阅读(208) 评论(0) 推荐(0) 编辑

锁屏解锁

摘要: package com.example.lock_screen; import android.app.Activity; import android.content.IntentFilter; import android.os.Bundle; public class MainActivity extends Activity { private LockScreenReceiver ... 阅读全文

posted @ 2017-02-19 16:14 LoaderMan 阅读(259) 评论(0) 推荐(0) 编辑

开机启动(无序广播)

摘要: package com.example.start; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class StartReceiver extends BroadcastReceiver { @Override... 阅读全文

posted @ 2017-02-19 16:11 LoaderMan 阅读(311) 评论(0) 推荐(0) 编辑

短信监听器

摘要: 协议数据单元(Protocol Data Unit)pdu package com.example.sms; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import andro... 阅读全文

posted @ 2017-02-19 16:10 LoaderMan 阅读(399) 评论(0) 推荐(0) 编辑

IP拨号器

摘要: 是一个最终的接收者 package com.example.ip; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class IPReceiver extends BroadcastReceiver { @Over... 阅读全文

posted @ 2017-02-19 16:08 LoaderMan 阅读(180) 评论(0) 推荐(0) 编辑

应用的卸载安装(无序广播)

摘要: public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if ("android.intent.action.PACKAGE_REMOVED".equals(action)) { System.out.println("卸载了应用程序:"... 阅读全文

posted @ 2017-02-19 16:06 LoaderMan 阅读(289) 评论(0) 推荐(0) 编辑

SD卡状态监听(无序广播)

摘要: import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; /** * 1. 买收音机 */ public class SDReceiver extends BroadcastReceiver { /** * 系统调用 ... 阅读全文

posted @ 2017-02-19 16:05 LoaderMan 阅读(312) 评论(0) 推荐(0) 编辑

广播的概念

摘要: Android广播:系统通过广播群发系统的公共事件 BroadcastReceiver翻译为广播接收者,Broadcast是一种广泛运用在应用程序之间的传输信息的机制,简单的可以理解为传统意义上的电台广播,通俗一点,发布失物招领。 广播机制是一个典型的发布—订阅模式,也就是我们所说的观察者模式。广播 阅读全文

posted @ 2017-02-19 16:03 LoaderMan 阅读(586) 评论(0) 推荐(0) 编辑

Intent Flags

摘要: Activity都是运行在任务栈里面,但如果要从广播接受者BordercastReceiver或者服务Service去启动一个Activity,必须为当前Activity创建一个新的任务栈才能正常显示 阅读全文

posted @ 2017-02-19 15:58 LoaderMan 阅读(225) 评论(0) 推荐(0) 编辑

onNewIntent

摘要: 当Activity不是Standard模式,并且被复用的时候,会触发onNewIntent(Intent intent) 这个方法,一般用来获取新的Intent传递的数据 我们一般会把MainAcitivy设置为SingleTask,除了保证MainActivity的唯一,还可以利用singleTa 阅读全文

posted @ 2017-02-19 15:57 LoaderMan 阅读(678) 评论(0) 推荐(0) 编辑

意图传递数据

摘要: A. java八大基本类型及其数组 B. Serializable :序列化 C. Parcelable :序列化到公共内存 D. bundle :数据捆,类似HashMap E. Intent 所以要让非基本类型和非String/CharSequence类型的数据通过Intent/Bundle来进 阅读全文

posted @ 2017-02-19 15:54 LoaderMan 阅读(109) 评论(0) 推荐(0) 编辑

startActivityForResult

摘要: 开启目标activity,等待activity关闭,然后返回数据 第一个界面跳转到第二个界面,等待第二个界面关闭时,返回给第一个界面数据 1. 采用一种特殊的方式开启Activity startActivityForResult(intent, 0); 2. 在开启的第二个Activity里面设置数 阅读全文

posted @ 2017-02-19 15:09 LoaderMan 阅读(221) 评论(0) 推荐(0) 编辑

隐式意图和显式意图

摘要: 隐式意图: 不知道将要跳转的是哪一个类, 无法引用到类. 只知道其动作(action), 类型(mimeType)和附加信息. * 原理:开启目标activity,系统去清单文件匹配,如果匹配成功则开启activity;如果匹配失败则抛出没有找到这个activity的异常 * 缺点:效率低,代码数据 阅读全文

posted @ 2017-02-19 14:59 LoaderMan 阅读(303) 评论(0) 推荐(0) 编辑

Activity的启动模式

摘要: 在清单文件(AndroidManifest.xml)文件中的activity节点里有个属性android:launchMode就是指定Activity的启动模式. 其默认为标准模式(standard), 以下是四种模式: 作用:影响activity在任务栈的顺序 1. 标准模式:standard 开 阅读全文

posted @ 2017-02-19 14:31 LoaderMan 阅读(178) 评论(0) 推荐(0) 编辑

Activity的生命周期

摘要: Activity 有三个状态: 当它在屏幕前台时,响应用户操作的Activity, 它是激活或运行状态. 当它上面有另外一个Activity,使它失去了焦点但仍然对用户可见时(如右图), 它处于暂停状态. 当它完全被另一个Activity覆盖时则处于停止状态. * 开启:onCreate()-->o 阅读全文

posted @ 2017-02-19 14:23 LoaderMan 阅读(207) 评论(0) 推荐(0) 编辑

C之指针的加法

摘要: #include #include main() { //char arr [] = {'H','e','l','l','o'}; int arr [] = {1,2,3,4,5}; //数组的名字就是一个内存地址值 printf("arr= %#x \n",arr); //数组的首元素的地址就是数组的内存地址值 printf("arr[0]= %#x \n",... 阅读全文

posted @ 2017-02-19 13:14 LoaderMan 阅读(825) 评论(0) 推荐(0) 编辑

C之静态内存和动态内存

摘要: 静态内存: * 自动申请,自动释放* 大小固定,内存空间连续* 从栈上分配的内存叫静态内存 动态内存: * 程序员自己申请 * new/malloc* 大小取决于虚拟内存的大小,内存空间不连续* java中自动回收,C中需要程序员使用free函数手动释放* 从堆上分配的内存叫动态内存 (1) 从静态 阅读全文

posted @ 2017-02-19 13:14 LoaderMan 阅读(800) 评论(0) 推荐(0) 编辑

C之函数返回一个以上的值

摘要: #include<stdio.h> #include<stdlib.h> //函数的返回值不能是数组 void add(int* a,int* b){ *a += 10; *b += 10; } main() { int a = 3; int b = 5; add(&a,&b); printf("% 阅读全文

posted @ 2017-02-19 13:11 LoaderMan 阅读(145) 评论(0) 推荐(0) 编辑

C之交换数据案例

摘要: //值传递 void swap(int i,int j){ printf("交换后:\n "); int tmp; tmp = i; i = j; j = tmp; } //引用传递,传递地址 void swap1(int* p,int* q){ printf("交换后:\n "); int tmp; tmp = *p; *p =... 阅读全文

posted @ 2017-02-19 13:09 LoaderMan 阅读(350) 评论(0) 推荐(0) 编辑

C之枚举

摘要: #include<stdio.h>#include<stdlib.h>enum WeekDay{ Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday};main(){ //枚举,规定变量取值范围只能从预先定义好的值中选择 enum Wee 阅读全文

posted @ 2017-02-19 13:08 LoaderMan 阅读(138) 评论(0) 推荐(0) 编辑

C之自定义类型

摘要: 声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字。 阅读全文

posted @ 2017-02-19 13:08 LoaderMan 阅读(246) 评论(0) 推荐(0) 编辑

C之结构体

摘要: #include #include void study(){ printf("好好学习,天天向上 \n"); } //定义结构体 //结构体中不能定义函数,但是可以定义函数指针 struct student{ int age; char sex; void(*study)(); }; main(){ struct student st = {20,... 阅读全文

posted @ 2017-02-19 13:07 LoaderMan 阅读(178) 评论(0) 推荐(0) 编辑

联合体

摘要: #include #include main(){ union{int i; char c; short s} un; un.i = 40; un.s = 30; //联合体中只能存放一个数据 printf("%d\n", un.i); //联合体的长度取决于它内部定义的最大的类型 printf("%d\n", sizeof(un)); } 阅读全文

posted @ 2017-02-19 13:07 LoaderMan 阅读(146) 评论(0) 推荐(0) 编辑

上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 50 下一页

导航