将上下文传递给 IntentService

2024-03-24

我有这个代码:

Intent publishIntent = new Intent(HistoryDoneVsPlanned.this, MyIntentService.class);
publishIntent.putExtra(HistoryMap.KEY_WORKOUT_ID, workoutId);

其中 HistoryDoneVsPlanned 是我当前的 Activity,MyIntetService 是 IntentService。

我的目标是在意图服务中传递活动的当前上下文,如下所示:

publishIntent.putExtra("CONTEXT", HistoryDoneVsPlanned.this);

但这是不可能的。

是一个好的做法吗?我需要将 Toast 和通知放入另一个类(而不是 Activity)中,并且我需要该活动的上下文。


是一个好的做法吗?我需要将 Toast 和通知放入 另一个类(不是活动),我需要活动的上下文。

不,这不是一个好的做法。您应该显示来自Services。但这取决于您也可以执行的应用程序行为。

Case 1:如果服务/意图服务正在运行并在后台执行任务..

您应该显示通知而不是 Toast。读 如何显示后台服务的通知? https://stackoverflow.com/questions/7701942/how-to-show-notification-from-background-service

Case 2:如果服务/意图服务正在后台运行并执行任务,但将结果返回到活动(这意味着用户存在于您的应用程序中)

在这种情况下,您可以显示 Toast。读 在服务中的当前活动中显示 toast https://stackoverflow.com/questions/12730675/show-toast-at-current-activity-from-service

Note : 并且不要通过传递上下文Intent to MyIntentService。你可以得到Context into MyIntentService也通过做MyIntentService.this。这是因为所有 AndroidComponents覆盖Context类,其中之一是IntentService.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将上下文传递给 IntentService 的相关文章

随机推荐