【问题标题】:Go back to the First/Main activity without reloading it返回第一个/主要活动而不重新加载它
【发布时间】:2012-04-06 10:27:43
【问题描述】:

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

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

如果我使用:

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

它将加载 MainActivity 但我不想重新加载它。就像第二个活动一样,我打电话给finish(),它确实想要我需要。

【问题讨论】:

  • 您是否在 onResume() 方法中从互联网加载数据?

标签: java android android-intent


【解决方案1】:

这是怎么做的:

Intent i = new Intent(this, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(i);

【讨论】:

    【解决方案2】:

    在你的 AndroidManifest.xml 文件中提及它

    <activity android:name=".MyActivity"
    
                  android:configChanges="keyboardHidden|orientation">
    

    返回此活动时,在方法 onResume()onstart() 内不执行任何操作

    并尝试intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 而不是addFlags() 方法

    【讨论】:

      【解决方案3】:

      在第三个活动中,当你想去第一个活动时,把finish() mwthod放在那里。

      在第二个活动中,在 onCreate() 方法之后,将 @覆盖 公共无效 onResume(){ 超级.onResume(); 结束(); }

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

      【讨论】:

        【解决方案4】:

        尝试将其添加到您的清单中:

                          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>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-18
          • 1970-01-01
          • 1970-01-01
          • 2016-09-20
          • 2019-01-25
          • 2013-02-17
          相关资源
          最近更新 更多