如何获得PendingIntent.getActivity的结果

时间:2014-03-19 14:45:12

标签: android android-intent android-activity alarmmanager android-pendingintent

我正在使用待定意图来启动闹钟(使用AlarmManager)。我需要根据用户点击其中的两个按钮之一(暂停或取消)来启动活动的不同结果代码。我如何得到这个结果?不幸的是,在关闭活动上启动finish()方法后,onActivityResult()方法未在父活动中启动。在Android文档中,它声明了

  

" PendingIntent.getActivity:   检索将启动新活动的PendingIntent,例如调用Context.startActivity(Intent)"

我需要像Context.startActivityForResult(Intent)这样的东西,但是对于Pending Intent。

1 个答案:

答案 0 :(得分: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
    }

}