Android通知 - 如何在不调用活动的情况下将活动置于最前面

时间:2012-07-31 15:07:26

标签: android android-activity android-notification-bar

在我的应用程序中,在一个活动(AndroidNotification.java)中,我正在执行以下操作:

1)当用户按下主页按钮时,我显示通知。

2)当用户点击通知时,我会通过活动显示应用程序 - AndroidNotification.java

3)当我的应用程序出现时,我关闭通知栏上的通知(即onResume方法)

下面的代码工作但问题是通知再次调用活动(AndroidNotification.java)

我的问题是我不想重新启动活动,通知应该带来

从后台开始的活动,不应该重新启动。

当前行为的结果是再次调用活动,以便再次使用整个功能。这就是问题。

我的代码:

private NotificationManager mNotificationManager;
Notification notifyDetails;
......
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        notifyDetails = new Notification(R.drawable.ic_launcher,
            "Notification, Click Me!", System.currentTimeMillis());

    Context context = AndroidNotification.this;
    CharSequence contentTitle = "Notification Test";
    CharSequence contentText = "Get back to Application on clicking me.";

    Intent notifyIntent = new Intent(context, AndroidNotification.class);
    notifyIntent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT );

    PendingIntent intent = PendingIntent.getActivity(
            AndroidNotification.this, 0, notifyIntent,0);

    // Set properties to notify object - its title, text
    notifyDetails.setLatestEventInfo(context, contentTitle,contentText, intent);

    // Notify user in status bar
    mNotificationManager.notify(SIMPLE_NOTFICATION_ID, notifyDetails);

需要为AndroidManifest.xml中的特定活动添加任何内容

请帮帮我。

1 个答案:

答案 0 :(得分:2)

我已经通过在创建方法

中添加以下内容来解决
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { 
    // Activity was brought to front and not created, 
    // Thus finishing this will get us to the last viewed activity 
    finish(); 
    return; 
}