最近公司app有这种 需求, 我也下功夫研究了下,具体的实现,记录下来,为以后自己复习或给大家提供参考,以免再踩坑。
1. 写一个广播用于监听手机的开机,并在AndroidManifest.xml 注册BroadcastRecevier
代码如下:
public class BootUpReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent i = context.getPackageManager().getLaunchIntentForPackage("package_name");
if (i != null) {
context.startService(new Intent(context, DataService.class));
}
}
}
分析:
1.判断该包名的程序有没有安装
2.如果已经安装之后启动内部的一个服务service
注册服务和广播如下:
<service android:name=".shortsocket.DataService">
<intent-filter >
<action android:name="ina.short.socket" />
</intent-filter>
</service>
<receiver android:name=".bootservice.BootUpReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
注意,该功能需要添加启动权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />