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 阅读(179) 评论(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 阅读(585) 评论(0) 推荐(0) 编辑

导航