6

我正在使用安卓系统。

我有一个我正在开发的应用程序,它使用一个 Activity 来设置特定的用户输入值,然后服务使用这些值来提供基于这些值的警报。进行研究时,我确定了如何在手机启动时启动应用程序,但是,我真正想要的是启动服务但不将应用程序加载到屏幕上。目前,当我打开设备时,整个应用程序都会加载到屏幕上,然后我必须退出它。

我已经下载了具有设置界面但在后台运行的类似程序。这是怎么做的?

4

1 回答 1

22

首先,您必须创建一个接收器:

public class BootCompletedReceiver extends BroadcastReceiver {

    final static String TAG = "BootCompletedReceiver";

    @Override
    public void onReceive(Context context, Intent arg1) {
        Log.w(TAG, "starting service...");
        context.startService(new Intent(context, YourService.class));
    }
}

然后向您的 AndroidManifest.xml 添加权限:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

并注册意图接收器:

<receiver android:name=".BootCompletedReceiver" >
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

完成此操作后,您的应用程序(Application类)将与服务一起运行,但没有活动。

啊,不要把你的应用程序放在 SD 卡(APP2SD 或类似的东西)上,因为它必须驻留在主存储器中才能在启动完成后立即可用。

于 2013-03-21T23:49:23.603 回答