安卓状态栏通知 - 选择通知时打开正确的活动

7

我一直有一个问题,就是当我点击通知时,它不能打开/跳转到正确的活动页面。

我的通知代码(位于扩展服务的类中):

Context context = getApplicationContext();

    CharSequence contentTitle = "Notification";

    CharSequence contentText = "New Notification";

    final Notification notifyDetails =
        new Notification(R.drawable.icon, "Consider yourself notified", System.currentTimeMillis());

    Intent notifyIntent = new Intent(context, MainActivity.class);

    PendingIntent intent =
          PendingIntent.getActivity(context, 0,
          notifyIntent,  PendingIntent.FLAG_UPDATE_CURRENT | Notification.FLAG_AUTO_CANCEL);

    notifyDetails.setLatestEventInfo(context, contentTitle, contentText, intent);

    ((NotificationManager)getSystemService(NOTIFICATION_SERVICE)).notify(NOTIFICATION_ID, notifyDetails);

如果在创建服务的应用程序打开时单击通知,则通知会消失(由于FLAG_AUTO_CANCEL),但活动不会切换。

如果我从主屏幕单击通知,则通知会消失并将我的应用程序带到前台,但它仍停留在去主屏幕之前打开的活动中,而不是进入主屏幕。

我做错了什么?如何指定要拉起的活动?

1个回答

14

可能已经回答了自己的问题:

Intent notifyIntent = new Intent(Intent.ACTION_MAIN);
notifyIntent.setClass(getApplicationContext(), Main.class);

谢谢分享你的答案,请问一下“Main.class”包含什么内容? - OnlyHope
getApplicationContext() 是什么? - OnlyHope
1
Main.class 将是您想要打开/转到的活动。getApplicationContext 是 Activity 类中的一个方法,该类从 ContextWrapper 类继承。http://developer.android.com/reference/android/content/ContextWrapper.html#getApplicationContext%28%29 - Mr Zorn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接