首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android中完成引导后自动启动应用程序

在Android中完成引导后自动启动应用程序
EN

Stack Overflow用户
提问于 2012-01-21 05:14:14
回答 5查看 28.3K关注 0票数 12

我想做一个应用程序,它的设置中有自动启动选项。我已经在我的应用程序中进行了设置活动,这是从PreferenceActivity派生的,并为自动启动提供了CheckBoxPreference选项。如果启用了自动启动选项,我的应用程序应该在启动电话时启动。如果自动启动选项被禁用,那么它不应该在启动完成时启动。

为了实现这一点,我实现了BroadcastReceiver的派生类,它接收BOOT_COMPLETED意图,在AndroidManifest.xml中声明接收者,并在AndroidManifest.xml.中给予许可。

在应用中也有一个派生类的应用程序和启动服务,也是从onCreate方法中的应用派生类派生出来的。如果我在AndroidManifest.xml中声明接收者,那么在启动完成后调用我的应用程序的onCreate,然后调用BroadcastReceiver的onReceive方法。

现在的问题是,无论是启用还是禁用自动启动,每次启动完成后,我的应用程序都会启动。禁用自动启动时,是否可能不启动应用程序?

EN

Stack Overflow用户

发布于 2012-01-21 05:25:52

我认为从Android3.1开始, your BroadcastReceiver收到了BOOT_COMPLETED的意图,它将无法工作。用户必须通过与其交互来唤醒应用程序。

因此,在启动设备之后,所有第三方应用程序都处于停止状态。

对于当前的应用程序,您可以使用SharedPreferences自动启动应用程序。

更新:(仅适用于安卓版本低于3.1的更高版本,但在设备启动完成后,您必须与应用程序进行用户交互)

您需要使用带有BroadcastReceiver意图的android.intent.action.BOOT_COMPLETED

在清单文件中添加以下内容:

代码语言:javascript
复制
<receiver android:name="App_Receiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</receiver>

App_Receiver类实现BoradcastReciever。实现onReceive()方法,并从应用程序中启动您最喜欢的活动。

代码语言:javascript
复制
public void onReceive(Context context, Intent intent) {
    // make sure you receive "BOOT_COMPLETED"
// Here isAutoStartEnabled check sharedPreferences for Auto Start flag
if ( isAutoStartEnabled ) {

    if ((intent.getAction() != null) && (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")))
    {
        // Start the service or activity 
    }
}
票数 6
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8950854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档