0

我有一個IntentService從9:00開始,並且每隔一小時重複一次。Android通知刷新活動

它與一個創建BUNDLE的AsyncTask一起工作。

IntentService必須在對話框中顯示Actvity(如Viber的消息),它顯示該BUNDLE中的部分數據,並且必須創建顯示相同數據部分的通知。如果用戶點擊通知,它將開始第二個活動,顯示來自BUNDLE的所有數據。

問題是:IntentService完成他的工作,顯示活動並創建通知。但問題是,如果用戶沒有使用智能手機。一小時後,IntentService重新啓動,並創建一個新的BUNDLE。

隨着下面的代碼,通知被刷新,但不是活動。如果用戶現在使用智能手機,他會在活動中看到舊BUNDLE的數據,而不是新的BUNDLE。 我必須刷新此活動,顯然如果用戶點擊通知,即使是開始的活動也必須刷新。

在 'IntentService', 「onHandleIntent(意向意圖)」 啓動對話框活動:

Intent myIntent = new Intent(this.myContext, *DIALOG_ACTIVITY*); 
     myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
     myIntent.putExtras(**BUNDLE**); 
     this.myContext.startActivity(myIntent); 

,並創建了通知:

Intent notifyIntent = new Intent(context, *SECOND_ACTIVITY*); 
notifyIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
notifyIntent.putExtras(**BUNDLE**); 

PendingIntent pIntent = PendingIntent.getActivity(context, 0, notifyIntent, PendingIntent.FLAG_UPDATE_CURRENT); 

NotificationCompat.Builder builder = new NotificationCompat.Builder(context); 
builder.setSmallIcon(icon); 
builder.setContentTitle(title); 
builder.setContentText(longText); 
builder.setWhen(System.currentTimeMillis()); 

builder.setContentIntent(pIntent); 

Notification n = builder.build(); 
n.flags |= Notification.FLAG_AUTO_CANCEL; 
NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
nm.notify(idNotification, n); 

在Android清單,DIALOG_ACTIVITY:

<activity 
     android:name="com.example.sample.DIALOG_ACTIVITY" 
     android:launchMode="singleTask" 
     android:taskAffinity="" 
     android:excludeFromRecents="true" 
     android:theme="@android:style/Theme.Dialog"> 
    </activity> 

and SECOND_ACTIVITY:

<activity 
     android:name="com.example.sample.SECOND_ACTIVITY" 
     android:theme="@style/Theme.AppCompat" 
     android:parentActivityName="com.example.sample.MainActivity" > 
     <!-- Parent activity meta-data to support API level 7+ --> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.example.sample.MainActivity" /> 
    </activity> 

IDEAS?

非常感謝!

回答

0

試試這個:

myList.setAdapter(adapter); 

NotificationManager nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); 

Notification notification = new Notification(android.R.drawable.stat_sys_warning, 
         "This is an important msg", 

System.currentTimeMillis()); 

ntent intent = new Intent(MainActivity.this, MainActivity.class); 

PendingIntent pendingNotify = PendingIntent.getActivity(MainActivity.this, 
         0, intent, 0); 

notification.setLatestEventInfo(MainActivity.this, "This is a demo", "Continue with yourwork.",pendingNotify); 


nm.notify(0, notification); 
+0

你能解釋一下嗎?有什麼區別? 「notification.setLatestEventInfo」?從文檔「此方法已在API級別11中棄用。請改用Notification.Builder」 –