1

我正在使用掛起的意圖啓動鬧鐘(使用AlarmManager)。我需要啓動活動的不同結果代碼,根據用戶點擊它放置的2個按鈕中的哪一個(「間歇」或「取消」)。我如何得到這個結果?不幸的是,在關閉活動上啓動finish()方法後,onActivityResult()方法不會在父活動中啓動。在Android文檔,它指出如何獲得PendingIntent.getActivity的結果

「PendingIntent.getActivity: 檢索的PendingIntent,將開始一個新的活動,比如調用Context.startActivity(意圖)」

我需要像上下文.startActivityForResult(意圖),但爲待定意圖。

回答

2

PendingIntents被設計爲可以從其他應用程序啓動,即不清楚誰應該收到結果。這就是爲什麼startActivityForResult()對PendingIntent沒有意義。我的建議是,當你完成之前發射活動

@Override 
public void onFinish() { 
    super.onFinish(); 
    Intent intent = new Intent(YOUR_CUSTOM_ACTION); 
    // Put data to intent 
    sendBroadcast(intent); 
} 

而且使用BroadcastReceiver得到的結果在其他活動來發送廣播消息:

public class ActivityResultReceiver extends BroadcastReceiver{ 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // Retrieve data from intent 
    } 

}