1

タブレットで連携する 2 つのアプリケーションがあります。ユーザーが1つのアプリケーションからバックアウトし、次にアプリを開いたときに oncreate が呼び出されますが、ホームに戻ってから戻った場合は oncreate が呼び出されないことに気付きました.. onPause、onStop、onResume は決してありません。呼び出されています..ユーザーが家に帰ったときにアプリが終了することを確認する方法が必要です..

@Override
    protected void onPause () {
        super.onPause();
        Toast.makeText(this, "Pause MED", Toast.LENGTH_SHORT).show();
        finish();
    }

    @Override
    protected void onStop () {
        super.onStop();
        Toast.makeText(this, "stopped MED", Toast.LENGTH_SHORT).show();
    }


    @Override
    protected void onRestart () {
        Toast.makeText(this, "Restart MED", Toast.LENGTH_SHORT).show();
    }
    @Override
    protected void onStart () {
        Toast.makeText(this, "Start MED", Toast.LENGTH_SHORT).show();
    }
    @Override
    protected void onResume () {

        super.onResume();
        Toast.makeText(this, "RESUME MED", Toast.LENGTH_SHORT).show();
        Intent currentIntent = this.getIntent();
        Bundle extras = currentIntent.getExtras();

または別のオプションは、他のアプリがアプリが開いているかどうかを確認して閉じることができるかどうかです..

助けてください

4

2 に答える 2

5

ホームボタンはアプリケーションを強制終了しません。ヒットしたときに onPause() を呼び出し、後でアプリに戻ったときに onResume() を呼び出す必要があります。トーストを使用する代わりに、ログに出力してみませんか?? これらのメソッドが起動されていると確信しています。これらのメソッドは、UI を変更できる前または後に呼び出されるため、Toast が表示されていない可能性があります。

また、少し奇妙に思えるかもしれない経験から気付いたことがあります: onResume() は、アプリの新しいインスタンスを起動している場合でも起動されます (ホームボタンを押した後に戻ってこない)... onResume はかなり確信しています() は、既にバックグラウンドで実行されているかどうかに関係なく、アクティビティがフォアグラウンドになるたびに発生します。

于 2012-04-20T19:02:00.680 に答える
1

finish()onPause()を呼び出すとアプリが破棄されるため、ホーム ボタンを押した後にアプリが onCreate() を起動します。破棄された後、再度作成する必要があります。また、コンテキストを破棄したため、トーストで予期しない動作が発生すると思います。

于 2012-04-20T19:12:22.993 に答える