我编写了GCMIntentService代码,但是调用了Activity,无法获取额外的内容。
@Override
protected void onMessage(Context context, Intent intent) {
Intent resultIntent = new Intent(this, MainActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_SINGLE_TOP);
resultIntent.putExtra("PushType", "test"); // Put String Extra.
PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
}名为MainActivity的代码如下。
@Override
protected void onResume() {
super.onResume();
final Intent receivedIntent = getIntent();
if (receivedIntent != null && receivedIntent.hasExtra("PushType")) {
// Breakpoint at here. but no Extras are given.
}
}
}我在receivedIntent上设置了断点,其中的mExtras显示为空。
此外,我调用的MainActivity清单的代码如下。
<activity
android:name=".MainActivity"
android:theme="@android:style/Theme.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/app_name">
<intent-filter>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>我将名为intent的代码更改为另一个Activity,它成功地加载了Extras。替换活动(成功包含附加内容)的清单如下所示。
<activity
android:name=".NotificationActivity"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity"/>
</activity>我做错了什么?
发布于 2013-06-12 17:02:22
看起来您需要覆盖onNewIntent(Intent intent)方法,并在onNewIntent()内部调用setIntent(intent)。然后,onResume()将获得新的意图。有关更多详细信息,请参阅onNewIntent()。
https://stackoverflow.com/questions/17061190
复制相似问题