4

如何獲取從NotificationManager啓動的活動的結果?onActivityResult for PendingIntent

換句話說,我需要從PendingIntent獲取resultCode。

public void test(Context context){ 
    Notification notification = new Notification(null, "text", System.currentTimeMillis()); 
    Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setData(Uri.parse("http://www.example.com")); 
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 
    notification.setLatestEventInfo(context, "text", "text", pendingIntent); 
    notificationManager.notify(0, notification); 
} 

我想在瀏覽器的活動結束時收到通知。

OBS:此代碼的活動之外,這就是爲什麼它臨危的 上下文參數

回答

3

讓我們假設你有活動A,設置PendingIntent。這PendingIntent調用活動B。您想收到B的結果。

您可以通過引入代理活動做到這一點:A - >PendingIntent - >ProxyActivity - >startActivityForResult - >B。通過這種方式,您將從B中收到活動的結果。

請注意,您應該致電 ProxyActivity.onCreate()

+0

謝謝inazaruk!我認爲它會工作,但我希望更優雅的東西。 – CelinHC

1

讓我們看看簡單的方式, 活性答:

intet.putStringExtra("from notification") ; 

在活動B:

if (getintent().getStringExtra("from notification") !=null){ 
//TODO do what u want ! 
}