在手机启动android(正确的方式)启动应用程序/服务

时间:2014-05-13 01:23:20

标签: java android service boot

我看到了一些关于如何在手机启动时启动应用程序的其他帖子,但是每次看到应用程序弹出时可能会让用户烦恼。我宁愿做的是启动服务并检查我是否应该启动并保持应用程序启动或关闭它。我的问题是如何才能完成这样的事情或者#34;正确的"这样做的方法,即启动服务或应用程序更好吗?

1 个答案:

答案 0 :(得分:1)

在您的清单中,添加RECEIVE_BOOT_COMPLETED权限。

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

制作一个BroadcastReceiver。将其添加到清单中,以便它接收BOOT_COMPLETED操作。

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

在您的应用中,您可以在SharedPreferences中保存用户的偏好设置。如果您没有使用典型的偏好设置屏幕,则可以随时执行此操作:

// if inside an activity or service, context can be "this"
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
prefs.edit().putBoolean("start_at_boot", true).commit();

在您的接收器中,您可以检查此偏好并决定从那里做什么。

public class BootCompletedReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
        boolean startAtBoot = prefs.getBoolean("start_at_boot", false) {
        if (startAtBoot) {
            // do something here
        }
    }
}
相关问题