如何处理状态栏通知?

时间:2013-01-22 05:38:59

标签: android notifications

我有三个屏幕,如登录,第二和第三。根据我的条件,我生成状态栏通知。如果用户单击我要显示第三个屏幕的通知。它工作正常。但当我重新启动应用程序时,第三个屏幕即将到来。我想在点击通知时显示第三个屏幕。其他明智的我的第一个屏幕应该是登录页面。

我可以使用以下代码显示通知

public void showNotification() 
    {
        NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
        Notification notification = new Notification(R.drawable.ic_launcher, "A New Message!", System.currentTimeMillis());


    Intent notificationIntent = new Intent(Preferences.this,PendingOffers.class);

    PendingIntent pendingIntent = PendingIntent.getActivity(Preferences.this, 0, notificationIntent, 0);

    notification.setLatestEventInfo(Preferences.this,"sample notification", "notificationMessage", pendingIntent);

    notification.flags |= Notification.FLAG_AUTO_CANCEL;

    notificationManager.notify(0, notification); 
};

3 个答案:

答案 0 :(得分:1)

Intent intent = new Intent(this, some.class)
intent.putExtra("yourpackage.notifyId", id);
PendingIntent contentIntent = PendingIntent.getActivity(this, 1, intent, 0);

有关详细信息,请查看此link

答案 1 :(得分:1)

你可以为意图设置标志, 例如

  

FLAG_ACTIVITY_NO_HISTORY

参考:http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NO_HISTORY 检查其他标志。

答案 2 :(得分:1)

您提出的问题与您正在使用的通知无关。用户返回到您应用程序中的第三个Activity,因为当您的应用程序没有真正停止,但只是在后台暂停时,用户默认返回到他在启动器图标时查看的上一个活动再次点击。

根据您的具体情况,此问题有多种解决方案。如果用户永远不会返回第三个Activity,您可以在清单中为该活动设置android:noHistory=“true”,请参阅此处:How does android:noHistory=“true” work?

如果只有登录用户应该能够返回第三个Activity,那么只要用户登录SharedPreferences即可存储。当第三个Activity开始时,您检查该值并使用Intent.FLAG_ACTIVITY_CLEAR_TOP的标记Intent将用户重定向到Login-Activity。这将在您最后一次执行Login-Activity后清除堆栈中的所有Activities