首页 文章

如何获得PendingIntent.getActivity的结果

提问于
浏览
1

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

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

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

1 回答

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

相关问题