Android 杀不死的服务

来源:互联网 发布:淘宝历史订单保留多久 编辑:程序博客网 时间:2024/04/30 00:50

现在的应用程序都是那么的不要脸,你在设置中把服务停了,把进程杀了,会发现过一会儿后台又有服务在运行。

其实这种东西通过监听系统广播就可以达到目的。

写个BroadcastReceiver:

public class PushReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {if(Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())){System.out.println("手机开机了...bootComplete!");}elseif(Intent.ACTION_PACKAGE_ADDED.equals(intent.getAction())){System.out.println("新安装了应用程序....pakageAdded!");}elseif(Intent.ACTION_PACKAGE_REMOVED.equals(intent.getAction())){System.out.println("应用程序被卸载了....pakageRemoved!");}elseif(Intent.ACTION_USER_PRESENT.equals(intent.getAction())){System.out.println("手机被唤醒了.....userPresent");Intent service = new Intent();service.setAction("com.xxx.service.PushService");service.setClass(context, PushService.class);context.startService(service);}}}

Mainfest中注册receiver:

<!-- push receiver -->        <receiver android:name=".receiver.PushReceiver">        <intent-filter>            <!-- 手机开机 -->            <action android:name="android.intent.action.BOOT_COMPLETED"></action>            <!-- 手机唤醒解锁 -->            <action android:name="android.intent.action.USER_PRESENT" />        </intent-filter>        <intent-filter>            <!-- 程序包安装与卸载 -->            <action android:name="android.intent.action.PACKAGE_ADDED"></action>            <action android:name="android.intent.action.PACKAGE_REMOVED"></action>            <data android:scheme="package"></data>        </intent-filter>    </receiver>

自己写个服务,在每个收到广播的地方根据自己应用的情况选择是否startServcie就Ok了

原创粉丝点击