2012-02-18 11 views
3

解決策を見つけるのに1週間を費やしましたが、成功しません。Android:元のアクティビティがランチャーから開始されていない場合、通知は新しいアクティビティを開始するのではなく、新しいアクティビティを開始します

アプリケーションがバックグラウンドになると、通知が表示され、アクティビティのステータスが表示されます。

アプリケーションがランチャーから起動されている場合(action = android.intent.action.MAINcategory = android.intent.category.LAUNCHER)、完全に機能します。 しかし、アプリケーションが起動されている場合は、f。ギャラリーandroid.intent.action.SENDまたはandroid.intent.action.SEND_MULTIPLEおよびカテゴリandroid.intent.category.DEFAULTを使用してギャラリーから既存のものを再開するのではなく、新しいアクティビティを開始します。通知の

コード:つまり

String ns = Context.NOTIFICATION_SERVICE; 
NotificationManager notificationManager = (NotificationManager) getSystemService(ns); 

int icon = R.drawable.icon; 
Notification notification = new Notification(icon, null, 0); 
notification.flags |= Notification.FLAG_ONGOING_EVENT|Notification.FLAG_AUTO_CANCEL|Notification.FLAG_ONLY_ALERT_ONCE; 

Context context = this.getApplicationContext(); 
CharSequence contentTitle = "XXX"; 
CharSequence contentText = "XXX"; 

Intent notificationIntent = new Intent(context, MyClass.class); 
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 

PendingIntent activityIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0); 
notification.setLatestEventInfo(context, contentTitle, contentText, activityIntent); 

notificationManager.notify(NOTIFICATION_ID, notification); 

、私は活動 "My活動" とアプリケーション "マイアプリケーション" を持っています。ギャラリーの上部で「マイアクティビティ」が開始され、通知が作成されている場合、通知を押すと、「マイアクティビティ」でギャラリーを再開する代わりに、「マイアプリケーション」が開始されます。

あなたはそれを癒す方法を知っていますか?

答えて

-1
Intent myIntent = new Intent(this, MainActivity.class); 
      myIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 

      PendingIntent pendingIntent = PendingIntent.getActivity(
        getBaseContext(), 0, myIntent, 
        PendingIntent.FLAG_CANCEL_CURRENT); 


NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
     notification.flags = notification.flags 
       | Notification.FLAG_ONGOING_EVENT; 
     notification.flags |= Notification.FLAG_NO_CLEAR;