6

我正在开发一个安卓应用程序。我需要在不重新加载的情况下调用我的 MainActivity,因为它从 Internet 获取大量数据。

假设,我现在正在进行第三个活动,我想回到 MainActivity。

如果我使用:

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

它会加载 MainActivity 但我不想重新加载它。就像我打电话的第二个活动一样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

在第三个活动中,当您想进入第一个活动时,将 finish() mwthod 放在那里。

在第二个活动中,在 onCreate() 方法之后,放置 @Override public void onResume(){ super.onResume(); 结束(); }

我认为这段代码对你有用,试试吧。

于 2012-04-06T10:42:09.070 回答
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 回答