2

Androidのライフサイクルがどのように機能するか、およびonResumeなどの関数呼び出しのソースを検出する方法について少し混乱しています。

この問題をこのように述べさせてください。5 つのアクティビティを含むアプリがあり、それらはタブ アクティビティを使用してナビゲートされます。

onPause()したがって、各タブを切り替えた後、現在のアクティビティとonResume()新しいアクティビティが呼び出されることがわかります。

アクティビティ B で言うと、戻るボタンを押して、Android のメイン画面に戻ります。アプリケーションを再度開いた後、アクティビティ B は になりますonResume()

私が達成したいのは、アクティビティがメイン画面から再開されたときに、コンテンツとデータが更新されることです。ただし、タブの切り替え中は変更されないはずです。

これを達成する方法はありますか?アクティビティが Android のメイン画面から再開されたのか、タブ スイッチから再開されたのかを知るにはどうすればよいですか?

ありがとうございました!

4

1 に答える 1

1

アプリのロジックがどのように設定されているかはわかりませんが、lastScreen のタグを保持するために変更できる public static 変数をいつでもどこかに置くことができます。

例えば:

たとえば、これをメインアクティビティに入れます:

public enum LastScreen {
        NONE, TAB1, TAB2 , TAB3 , MAIN_SCREEN
    }

public static LastScreen lastScreen = LastScreen.NONE;

切り替える前に、すべてのタブで次の操作を行います。

MainActivity.lastScreen = LastScreen.TAB1;

そして onResume() で確認できます:

if(MainActivity.lastScreen == LastScreen.TAB1)
   //do something!
else if (MainActivity.lastScreen == LastScreen.MAIN_ACTIVITY)
   //do something else!
于 2013-04-01T17:03:36.067 に答える