0

10秒後にアプリを強制終了したい。KillActionを取得した後にアプリを強制終了するサービスを開始したい。しかし、このコードは10秒後に注目しています。なんで?

AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, service_MyService.class);
intent.setAction("Kill");
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,intent, 0);
Calendar time = Calendar.getInstance();
time.setTimeInMillis(System.currentTimeMillis());
time.add(Calendar.SECOND, 10);
alarmMgr.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(),pendingIntent);
4

3 に答える 3

0

あなたは以下を使ってあなたの活動を殺すことができます:

finish();

または、アプリを強制終了できます。

System.exit(0);

しかし、両方は提案されていません。Androidシステムはこれには適していません。アプリを強制終了するAndroidOSコントロール。

詳細はこちら

于 2012-05-25T07:57:05.110 に答える
0

Androidは自分でアプリケーションを管理したいので、これは良くありませんが、このように行うことができます。

System.exit(0);
于 2012-05-25T07:51:30.680 に答える
0

あなたのコードでは、ブロードキャストインテントを送信しています

PendingIntent.getBroadcast(this, 0,intent, 0);

BroadCastReceiverのみを開始でき、サービスは開始できません。ただし、AlarmManagerはサービスをウェイクアップできず、BroadCastReceiverのみがウェイクアップできるため、正しいインテントを使用しています。

サービスの代わりにBroadCastReceiverを作成し、次の行を置き換える必要があります。

Intent intent = new Intent(this, service_MyService.class);

この行で

Intent intent = new Intent(this, KillerBroadCastReceiver.class);

次に、KillerBroadCastReceiverクラスでアプリを強制終了します。

ただし、しばらくしてからアプリを強制終了する場合は、ハンドラーを使用することをお勧めします。次に例を示します。

public class VeryFirstActivity extends Activity {
    Handler mKillerHandler;

    public void onCreate(...) {
        mKillerHandler = new Handler();
        mKillerHandler.postDelayed(new Runnable() {
           public void run() {
               VeryFirstActivity.this.finish();
           }
        }, 10000); // 10 seconds
    }
}
于 2012-05-25T09:41:09.147 に答える