我正在使用待定意图来启动闹钟(使用AlarmManager)。我需要根据用户点击其中的两个按钮之一(暂停或取消)来启动活动的不同结果代码。我如何得到这个结果?不幸的是,在关闭活动上启动finish()方法后,onActivityResult()方法未在父活动中启动。在Android文档中,它声明了
" PendingIntent.getActivity: 检索将启动新活动的PendingIntent,例如调用Context.startActivity(Intent)"
我需要像Context.startActivityForResult(Intent)这样的东西,但是对于Pending Intent。
答案 0 :(得分:2)
PendingIntents的设计可以从其他应用程序启动,即不清楚谁应该收到结果。这就是为什么startActivityForResult()对PendingIntent毫无意义的原因。我的建议是在完成之前启动的活动时发送广播消息
@Override
public void onFinish() {
super.onFinish();
Intent intent = new Intent(YOUR_CUSTOM_ACTION);
// Put data to intent
sendBroadcast(intent);
}
在其他活动中收到结果
public class ActivityResultReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// Retrieve data from intent
}
}