6

私はアンドロイドアプリを開発しています。インターネットから大量のデータが取得されるため、リロードせずに MainActivity を呼び出す必要があります。

今、3 番目のアクティビティを行っていて、MainActivity に戻りたいとします。

私が使用する場合:

Intent i = new Intent(Third.this,Main.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

MainActivity をロードしますが、リロードしたくありません。2 番目のアクティビティからのように、私が呼び出すfinish()と、まさに私が必要とするものです。

4

4 に答える 4

16

これを行う方法は次のとおりです。

Intent i = new Intent(this, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(i);
于 2014-01-31T15:15:38.707 に答える
4

あなたのAndroidManifest.xmlファイルでそれを満たしてください

<activity android:name=".MyActivity"

              android:configChanges="keyboardHidden|orientation">

onResume()メソッド内で何もせず、onstart()このアクティビティに戻ったとき

メソッドintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);の代わりに試すaddFlags()

于 2012-04-06T11:09:13.973 に答える
0

これをマニフェストに追加してみてください。

                  android:configChanges="keyboard|keyboardHidden|orientation">

この行をマニフェストのアクティビティに次のように追加します。

       <activity android:name=".Main"
              android:label="@string/app_name"
              android:configChanges="keyboard|keyboardHidden|orientation">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

    </activity>
于 2012-04-06T10:45:24.780 に答える
0

最初のアクティビティに移動する3番目のアクティビティで、finish()mwthodをそこに配置します。

2番目のアクティビティでは、onCreate()メソッドの後に、@ Override public void onResume(){super.onResume();を配置します。終了(); }

私はこのコードがあなたのために働くと思います、jusはそれを試してみてください。

于 2012-04-06T10:42:09.070 に答える