3

我想在手机启动时自动启动我的应用程序。我在清单文件中声明了一个 BroadcastReceiver。

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

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

我为接收器制作了一个java文件。

自动启动.java

public class Autostart extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {  

    Intent pushIntent = new Intent(context, MushTouchActivity.class); 
    pushIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(pushIntent);
    }
}

}

但是,当我打开手机时,应用程序没有启动。谁能告诉我我在这里想念什么?

4

3 回答 3

5

试试你的 if 语句:

    if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){


        Intent i = new Intent(context, MushTouchActivity.class);
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        context.startActivity(i);
    }
于 2012-06-01T16:17:40.183 回答
2

如果您使用的是 Android 3.1 或更高版本:

确保您至少手动启动了一次应用程序(例如,通过从应用程序抽屉打开它)。否则,您的应用会被系统标记为已停止:

应用程序在首次安装但尚未启动时处于停止状态

停止的应用程序不会收到任何广播意图,包括BOOT_COMPLETED.

请参阅安卓 3.1。平台 - 在已停止的应用程序上启动控件以获取更多信息。

于 2012-06-01T16:49:30.847 回答
0

最好的答案是显示一个通知并要求用户从该通知启动应用程序,并在通知中为该活动使用挂起的意图。

于 2019-03-15T09:09:32.273 回答