Androidブートセルフスタートアプリケーション

1519 ワード

最近、私达の会社のグループは1つのアプリケーションをして、取引先の要求に応じて、それをスタートさせる必要があります.しかし、csdnの上で、いくつかの文章を探して、いくつかのスタートアップだけがいくつかのサービスのアプリケーションをスタートさせることを発见して、それからいくつかの同僚に闻いて、ついにこの问题を解决しました.次のコードを貼ります.
public class BootStartBroadcast extends BroadcastReceiver {
	@Override
	public void onReceive(Context ctx, Intent intent) {
		PendingIntent pendingIntent = PendingIntent
				.getActivity(ctx, 0, new Intent(ctx,MainActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);
		
		long time = SystemClock.elapsedRealtime();
		AlarmManager alarmManager = (AlarmManager)ctx.getSystemService(Context.ALARM_SERVICE);
		
		alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, time, pendingIntent);
	}
}

次に、このブロードキャストをManifestに登録します.
<receiver android:name="BootStartBroadcast"></receiver>

最後に、Manifestで権限を申請することを忘れないでください.
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

もちろんこれは私たちのアプリケーションをアプリケーションとして、起動時に私たちのプログラムを起動します.
 
上記のコードでは、単独でプログラムを1回起動するだけで、プログラムが起動時に起動できない場合、繰り返し起動する必要がある場合は、上記の
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, time, pendingIntent);

変換:
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, time, 5 * 1000, pendingIntent);

5 sおきにチェックし、プログラムが起動しなければ起動することができます.