2012-04-20 8 views
1

私はタブレットで一緒に働く2つのアプリケーションがあります。私が気づいたのは、onPause、onStop、onResumeは決してないことに気がついたことです。ユーザーが1つのアプリケーションから戻って、アプリケーションが開かれたときに、呼び出されている..私は..ユーザーが自宅当たるとアプリが終了していることを確認してくださいどのようにいくつかにonPause、onResume、onStop、onStartなど、発射しない - ライフサイクル?

@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(); 

を必要とするか、私の他のアプリはアプリが開いているかどうかを確認し、それを閉じることができた場合、別のオプションがあります。 。

打ったときとonResume()は、あなたが戻ってきたときに

+2

トーストの代わりにログステートメントを使用します。トーストは積み重なると奇妙な行動をし始めます。ログにはブロッキング時間がないので、問題ではないので、何が呼び出されているのかを正確に見ることができます。また、ホームボタンは@PaulGが指摘したように機能するようになっています。 – FoamyGuy

+0

トーストはさておき、あなたが提供したものがライフサイクルに違反してはならないので、あなたのアクティビティコードをさらに投稿しますか? – Sam

答えて

5

は、ホームボタンがアプリケーションを殺すことはありません助けてください、それはonPause()を呼び出す必要がありますその後アプリにトーストを使用する代わりに、ログに印刷しないでください。私はそれらの方法が解雇されていると確信しています。これらのメソッドは、UIを変更できる前または後に呼び出されるため、Toastが表示されないことがあります。

また、少し奇妙に思えるかもしれない経験から気づいたことがあります:アプリケーションの新しいインスタンスを起動していてもonResume()は起動されます(ホームボタンを押した後は戻ってこない)あなたが活動しているときはいつでも、フォアグラウンドがバックグラウンドで既に実行されているかどうかに関わらず、onResume()が起動されることは間違いありません。

+0

彼らはありません! onPause()は呼び出されていませんか?私を信じて、私はログとトーストを持っています..どちらも表示されていません – erik

1

onPause()でfinish()を呼び出したときにあなたのアプリを破壊しているため、あなたのアプリはホームボタンを押した後にoncreate()を起動します。それは破壊された後に再び作成されなければなりません。私はまたあなたのトーストが予期せぬ動作を引き起こしたと考えています。

関連する問題