如何撰写service
,device boots
会自动启动?例如:当我启动手机时,我会收到新的WhatsApp
消息,而不会在之前打开WhatsApp
。
答案 0 :(得分:1)
Himanshu回答的两个补充:
不得在SD卡上安装启动收听应用 。请记住,设备启动可能已完成 在sdcard被安装之前导致应用程序的启动侦听器未被激活
在用户激活您的启动后,才会激活启动侦听器 应用程序第一次。从4.2开始(不确定)android防止所有服务& 新安装的应用程序声明的侦听器被激活,直到用户明确激活为止。
在用户点击主屏幕图标时显式激活。
答案 1 :(得分:0)
您可以使用它来使其正常工作:
您的manifest
文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.jjoe64">
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application>
<receiver android:name=".BootCompletedIntentReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<service android:name=".BackgroundService" />
</application>
</manifest>
添加此课程BootCompletedIntentReceiver.java
public class BootCompletedIntentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
Intent pushIntent = new Intent(context, BackgroundService.class);
context.startService(pushIntent);
}
}
}
这将使其在设备启动后自动启动您的服务