【问题标题】:How to get a result of PendingIntent.getActivity如何获得 PendingIntent.getActivity 的结果
【发布时间】:2014-04-25 21:51:09
【问题描述】:

我正在使用挂起的意图来启动闹钟(使用 AlarmManager)。我需要根据用户单击放置在其中的 2 个按钮中的哪一个(贪睡或取消)来启动活动的不同结果代码。我如何得到这个结果?不幸的是,在关闭活动上启动了 finish() 方法后,父活动中没有启动 onActivityResult() 方法。在 Android 文档中,它声明

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

我需要 Context.startActivityForResult(Intent) 之类的东西,但用于 Pending Intent。

【问题讨论】:

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


    【解决方案1】:

    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
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2012-04-02
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 2019-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多