我正在开发一个Android应用程序。我需要调用我的MainActivity而不重新加载它,因为它从互联网上获取大量数据。
假设,我现在正处于第三项活动,我想回到MainActivity。
如果我使用:
Intent i = new Intent(Third.this,Main.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
它将加载MainActivity但我不想重新加载它。比如第二次活动,我打电话给finish()
,它确实需要我。
答案 0 :(得分:14)
这是怎么做的:
Intent i = new Intent(this, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(i);
答案 1 :(得分:4)
在 AndroidManifest.xml 文件
中识别它<activity android:name=".MyActivity"
android:configChanges="keyboardHidden|orientation">
回到此活动时,在方法onResume()
和onstart()
内无需执行任何操作
并尝试使用intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
代替addFlags()
方法
答案 2 :(得分:0)
在第三项活动中,当您想要进行第一项活动时,请将finish()mwthod放在那里。
在第二个活动中,在onCreate()方法之后,put @覆盖 public void onResume(){ super.onResume(); 完(); }
我认为这段代码对您有用,请尝试一下。
答案 3 :(得分: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>