如何在设备启动时启动应用程序服务? (机器人)

时间:2014-07-19 13:22:59

标签: java android

如何撰写servicedevice boots会自动启动?例如:当我启动手机时,我会收到新的WhatsApp消息,而不会在之前打开WhatsApp

2 个答案:

答案 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);
        }
    }
}

这将使其在设备启动后自动启动您的服务