我看到了几种方法,我尝试了所有方法,但无法使其发挥作用。我不知道为什么它如此复杂,在文档中它看起来如此简单!我想通过通知触发 OnNewIntent(用户在通知栏中单击它)。
目前我已将我的 Activity 设置为 singleTop
<activity
android:name="-.-.-.MainMenuActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait" >
</activity>
这是我创建通知的代码:
public void showNotification(String text, String componentId){
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.logo)
.setContentTitle("Title")
.setAutoCancel(true)
.setContentText(text);
// Creates an explicit intent for an Activity in your app
Intent resultIntent = new Intent(this, MainMenuActivity.class);
if(!componentId.equalsIgnoreCase("")){
resultIntent.putExtra("componentId", componentId);
}
resultIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, resultIntent, 0);
mBuilder.setFullScreenIntent(resultPendingIntent, false);
mBuilder.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// mId allows you to update the notification later on.
mNotificationManager.notify(0, mBuilder.build());
}
这是我的 MainMenuActivity 中的 OnNewIntent 方法:
@Override
protected void onNewIntent(Intent intent) {
// TODO Auto-generated method stub
super.onNewIntent(intent);
setIntent(intent);
...
}
我从来没有接到 OnNewIntent 电话。我不知道我做错了什么。我在整个应用程序中只使用了 2 个活动,并且 MainMenuActivity 出现在 LoginActivity 之后,因此 MainMenuActivity 应该始终位于堆栈顶部(我有更多片段,我在 MainMenuActivity 中替换它们)。
任何帮助,将不胜感激!谢谢你们。