如何从MainActivity外部的BroadcastReceiver类重新加载/刷新Main Activity - Android

时间:2014-03-27 12:16:41

标签: java android android-activity broadcastreceiver

我有一个MainActivity类,它调用服务器来获取onCreate()方法中的消息。

然后我在MainActivity类之外有一个BroadcastReceiver类。

这是我的BroadcastReceiver类:

  public class GcmBroadcastReceiver extends WakefulBroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    // Explicitly specify that GcmIntentService will handle the intent.
    ComponentName comp = new ComponentName(context.getPackageName(),
            GcmIntentService.class.getName());
    // Start the service, keeping the device awake while it is launching.
    startWakefulService(context, (intent.setComponent(comp)));
    setResultCode(Activity.RESULT_OK);

    Bundle extras = intent.getExtras();

    if (extras != null) {

        // This is where I want to refresh/reload MainActivity 

    }

}

}

如果extras!= null我想刷新我的MainActivity类,以便再次进行onCreate()调用。我怎么能这样做?

这是我的清单文件摘要:

  <receiver
    android:name="za.co.vine.samplepush.GcmBroadcastReceiver"
    android:permission="com.google.android.c2dm.permission.SEND" >
    <intent-filter>

        <!-- Receives the actual messages. -->
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />

        <category android:name="za.co.vine.samplepush" />
    </intent-filter>
</receiver>

1 个答案:

答案 0 :(得分:0)

使用意图启动MainActivity,我将android:launchMode属性更改为&#34; singleTop&#34;这样你就不会有2个MainActivity实例