デバイスの起動が完了したら、アプリケーションを実行したいと思います。このため 私は、インターネットでいくつかの有用なコードを発見した:Androidの自動起動アクティビティ(アプリが2回起動)
public class MyBootCompleteReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
if(intent.getAction() != null && intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED))
{
Intent pushIntent = new Intent(context, MainActivity.class);
pushIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(pushIntent);
}
}
}
とマニフェストエントリ:
<receiver android:name="MyBootCompleteReceiver" android:enabled="true" android:exported="false" android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
私は自分のデバイスを起動する場合はこれでアプリケーションが二回起動しているようです。 それから、 "NEW_TASK"フラグを "REORDER_TO_FRONT"と置き換えようとしましたが(インターネットでもこれを読んでいます)、そうすれば起動時にアプリケーションがクラッシュします。 また、すべてのフラグを削除すると、それもクラッシュします。
希望すると助かります!
なぜクラッシュするのですか?エラーログ? –
いいえ、残念ながら(私の日食はブート後にログに記録されないので)。 画面のロックを解除した後、(アプリケーションが予期せずクラッシュして強制的に閉じる)典型的な黒いダイアログが表示されます。 – Chris