android - 如何获得 PendingIntent.getActivity 的结果

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

我正在使用挂起的 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/

相关文章:

android - 我需要检查应用程序是否已关闭或在 android 中处于后台

java - IntentService 将 Location 对象传递给 UI

android - NFC Intent 在 onNewIntent 之前调用 onPause - 如何知道 onPause 调用的来源?

android - Camera Intent 返回 Null

java - 无法使用共享 Intent 发送所选图像

java - Activity 和 Context 的差异以及获取它们的方法

android - 无法销毁 Activity (服务未注册)

android - 如何复制并运行 Android 手机内存中的 html5 文件?

android - 检测是否在 Android 辅助功能设置中启用了 'High contrast'

javascript - 在 Android Studio 模拟器上 React Native