2012-03-21 13 views
0

私はアクティビティを持っています...電話があったときonPause()新しいアクティビティを開始しました。問題は私の電話の画面をロックするときです。それはを呼び出して、主な活動ですが、私はその活動にとどまりたいです。これを修正する方法はありますか?あなたは本当に、本当に、本当にonPauseでそのようなものを置くべきではありませんonPause()メソッドを使用したときのトラブル

@Override 
protected void onPause() { 
    super.onPause(); 
    call_next_activity(call_next_act); 
} 

private void call_next_activity(Boolean call_next) { 
    if (!call_next) 
     return; 
    Intent select_one; 
    if (program_id) { 
     select_one = new Intent("c.theworld.com.nikhil.MENU"); 
    } else { 
     select_one = new Intent("c.theworld.com.nikhil.CHAPTER"); 
     Chapter.call_menu = true; 
    } 
    startActivity(select_one); 
} 
+0

切り替えに使用される最終的な 'program_id'を設定する場所は、アクティビティを切り替えるのに適しているかもしれません。 – zapl

答えて

3

それは場合に役立ちます。これは、コードスニペット..です()。

onPause()は、何らかの理由でアクティビティが停止していることを示すライフサイクルで、ユーザは自宅を押し戻し、電話を受け取ります。あなたのコントロールの外にある多くのイベントによって、onPuase()が呼び出される可能性があります。

onPause()メソッドでを起動しないようにする必要があります。アプリを別のやり方で再因子付けする必要があります。

+0

onPauseでfinish()メソッドを使用しないでください。 – Nikhil

+0

いいえ、アクティビティが終了しようとすると、onStop()とonDestroy()自体が呼び出され、onPause()でfinish()を呼び出す必要はありません。これは、ユーザーがテキストを表示するためにあなたのアプリケーションを残しているテキストメッセージを受け取った場合、onPause()でfinish()を呼び出すと、アプリに戻ってきたときに、finishを呼び出したので、あなたのアプリの使用を止めるのに十分なほどの怒りや怒りを引き起こす可能性があるonPause()の中の() – triggs

+0

私はfinish()を使用せずに、私のアプリを終了するために戻るボタンを使用し、私はアプリを開きます。最初から起動するのではなく、そのアクティビティから開始します!他のアプリが表示されたら、アプリが再起動し、現在のアクティビティから開始しないことがわかります – Nikhil

0

コード内のロジックを変更する必要があります。ホームボタンを押したり、電話をかけたり、電話をロックしたりするなど、複数の理由でアクティビティが停止することがありました。すべてがonPauseをトリガーします。だから、私は新しいアクティビティを開始するときに、他の選択肢を選択することをお勧めします。

関連する問題