gpt4 book ai didi

Android Service PendingIntent 在 Activity ( fragment )中没有来自服务的回调

转载 作者:行者123 更新时间:2023-11-30 02:25:39 25 4
gpt4 key购买 nike

我正在尝试使用 PendingIntentService 触发 onActivityResult 方法。一切顺利:后台线程完美运行,PendingIntentIntent 对象发送到 Fragment,但它不会运行 onActivityResult 方法。

这是我创建服务的代码:

Intent i = new Intent(getActivity(), UpdaterService.class);
Intent ei = new Intent();
PendingIntent pi = getActivity().createPendingResult(TASK_CODE_UPDATE, ei, 0);

onActivityResult:

public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
Log.d(TAG, "Result get");
if(resultCode == RESULT_START){
switch(requestCode){
case TASK_CODE_UPDATE:
lessonTextView.setText(data.getStringExtra(UpdaterService.EXTRA_LESSON_VIEW_TEXT));
futureTextView.setText(data.getStringExtra(UpdaterService.EXTRA_FUTURE_VIEW_TEXT));
break;
}
}
}

服务发送代码:

Intent i = new Intent()
.putExtra(EXTRA_LESSON_VIEW_TEXT, lessonViewText)
.putExtra(EXTRA_FUTURE_VIEW_TEXT, futureViewText);
try {
pi.send(UpdaterService.this, HelperFragment.RESULT_START, i);
Log.d(TAG, "Sending intent");
} catch (CanceledException e) {
e.printStackTrace();
Log.e(TAG, "Error sending intent");
}

最佳答案

这不是对结果 Intent 的正确使用。这仅在从一个 Activity 调用 startActivityForResult() 到另一个时使用。在您的 Service 中,当您调用 pi.send() 时,您实际上是在使用 PendingIntent< 的内容执行 startActivity()/.

关于Android Service PendingIntent 在 Activity ( fragment )中没有来自服务的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27931276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com