我正在使用挂起的 Intent 来启动闹钟(使用 AlarmManager)。我需要启动 Activity 的不同结果代码,具体取决于用户点击放置在其中的 2 个按钮中的哪一个(暂停或取消)。我如何得到这个结果?不幸的是,在关闭 Activity 上启动 finish() 方法后,父 Activity 中未启动 onActivityResult() 方法。在 Android 文档中,它指出
"PendingIntent.getActivity: Retrieve a PendingIntent that will start a new activity, like calling Context.startActivity(Intent)"
我需要类似 Context.startActivityForResult(Intent) 的东西,但用于 Pending Intent。
最佳答案
PendingIntents 被设计为可以从其他应用程序启动,即不清楚谁应该接收结果。这就是为什么 startActivityForResult() 对于 PendingIntent 没有意义。我的建议是当你完成之前启动的 Activity 时发送广播消息
@Override
public void onFinish() {
super.onFinish();
Intent intent = new Intent(YOUR_CUSTOM_ACTION);
// Put data to intent
sendBroadcast(intent);
}
并使用 BroadcastReceiver 在其他 Activity 中接收结果:
public class ActivityResultReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// Retrieve data from intent
}
}
关于android - 如何获得 PendingIntent.getActivity 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22509463/