仅重新加载主活动而不是启动器活动

时间:2014-05-29 15:32:12

标签: android android-activity android-manifest

我在按下“刷新”按钮时使用此代码刷新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>

2 个答案:

答案 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

让我知道它是否有帮助,或者您仍然无法重新加载活动。

干杯