我在按下“刷新”按钮时使用此代码刷新MainActivity.java。
Intent intent = getIntent();
finish();
startActivity(intent);
MainActivity.java具有默认类别,还有另一个Launcher活动。因此,每当我按下“刷新”按钮时,Launcher活动也会再次启动。我只需要启动MainActivity类。以下是清单
<application
android:allowBackup="true"
android:icon="@drawable/play_icon"
android:label="@string/app_name"
android:theme="@style/CustomActionBarTheme" >
<activity
android:name="com.theanilpaudel.joshilo.FirstScreen"
android:configChanges="orientation|screenSize"
android:label="@string/app_name"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.theanilpaudel.joshilo.MainActivity"
android:configChanges="orientation|screenSize"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.DarkActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAINACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
答案 0 :(得分:0)
在这种情况下,您正在寻找的是一个显式的Intent,它会启动MainActivity
。
你可以这样做:
Intent mainIntent = new Intent(this, MainActivity.class);
startActivity(mainIntent);
这将确保仅的意图启动MainActivity
。
但是,我强烈建议您重新评估为什么需要完全重新启动Activity来刷新它。有更便宜(更快,资源更少)的方法来更新活动中显示的数据。
答案 1 :(得分:0)
我想我知道罪魁祸首。尝试使用以下代码一次。
Intent intent = getIntent();
startActivity(intent);
finish();
据我所知startActivity()
使用 context 来运行。如果您在finish()
之前调用startActivity()
可能会导致销毁MainActivity
的上下文并获取应用程序的上下文,即使用行为LAUNCHER
或{{1}触发活动}。
MAIN
让我知道它是否有帮助,或者您仍然无法重新加载活动。
干杯