1

難しい問題が発生しました。アクティビティがバックグラウンドになった原因を特定する必要があります。つまり、アクティビティの onPause メソッドが呼び出された場合、他のどのアクティビティが onResume になるかを知る必要があります。

4

3 に答える 3

0

アクティビティ内で 2 つの静的フラグを使用します (1 つはアクティビティがバックグラウンドに移行するためのもので、もう 1 つはアクティビティが呼び出されるためのものです。これらの変数を使用して、

static boolean isActivityCalled=false;
static boolean isGoesToBackGround=false;
@Override
publivc void onResume()
{
   if(isActivityCalled&&isGoesToBackGround)
   {
      //Application is resumes not from other activity
      isActivityCalled=false;
      isGoesToBackGround=false;
   }
}
@Override
public void onUserLeaveHint()
{
    super.onUserLeaveHint();
    isGoesToBackGround=true;
}

アクティビティを呼び出してから設定するisActivityCalled=true;と、これがすべてのデバイスでバックグラウンドに移行する唯一の方法です (ホームボタンをクリックしてスリープするとき)。

于 2013-04-16T05:38:14.407 に答える
0

これはチェックしましたか???

ここに画像の説明を入力

あなたの答え:

Android プロジェクトで 2 つのアクティビティがあるとします。アクティビティAアクティビティB

現在、ActivityA が実行されています。

ActivityA がバックグラウンド (onPaush) の場合

  1. アクティビティAからアクティビティBへ
  2. ホームボタンを押す
  3. 他のアクティビティが前面に出てきます (例: 着信コールがデバイスに来る)

したがって、上記の可能性は avtivityA が onPaushにあり、他のアクティビティがonResume にある可能性です。

そのため、どのアクティビティが画面に表示されているかは onResume にあります。

ほら、あなたが理解することを願って......

于 2013-04-16T05:28:25.157 に答える