在特定的活动流下,我无法将意图交付给IntentService
:这是一个场景:
startService(Intent)
。(getActivity()。片段的startService(意图)onStop()
中运行,我都会使用stopService(intent)
来确保它停止
我的理解是IntentService有一个意图队列。如果服务是第一次运行,则会调用onStartCommand(我们不应该为IntentService处理这个问题)。如果服务已经在运行,那么每次后续调用startService时都会调用OnHandleContent。
显然,我做错了什么,但不清楚是什么。我试着研究其他问题,但没有帮助。我使用的代码非常简单:
AndroidManifest。xml
<service android:name=".service.ExampleIntentService" />
活动B
@Override
public void onCreate(Bundle savedInstanceState)
{
.......
intent = new Intent(getApplicationContext(), ExampleIntentService.class);
intent.setAction(StringConstants.ACTION_B);
serviceRunning = true; //set to false in onReceiveResult
startService(intent);
}
@Override
public void onStop()
{
if(serviceRunning && intent != null)
stopService(intent)
}
片段CF1
@Override
public void onResume()
{
super.onResume();
intent = new Intent(getActivity(), ExampleIntentService.class);
intent.setAction(StringConstants.ACTION_CF1);
serviceRunning = true; //set to false in onReceiveResult
startService(intent);
}
@Override
public void onStop()
{
if(serviceRunning && intent != null)
stopService(intent)
}
代码与片段CF2完全相同
我的理解是。。。如果服务是第一次运行,则会调用onStartCommand(我们不应该为IntentService处理这个问题)。如果服务已经在运行,那么每次后续调用startService时都会调用OnHandleContent。
否。onStartCommand()
是为每个startService()
调用调用的onHandleIntent()
是为每个startService()
调用IntentService
而调用的,除非你在onStartCommand()
中做了一些改变正常行为的事情。
IntentService开始使用startService(Intent)。
您可以使用starService()
向IntentService
发送命令。
无论IntentService在哪里启动,我都会使用stopService(intent)确保它停止运行
这是一个非常糟糕的主意IntentService
将在所有startService()
调用处理完毕后自动停止,如文档中所述:
IntentService将接收意图,启动工作线程,并根据需要停止服务。
问题内容: 我想创建一个与此服务类似的服务(从Here引用),以在Android中异步下载多个文件。 用户可以选择不同片段中的下载项目。我的策略是,随着用户选择项目并按下下载按钮,这些项目将被传递到其中,负责下载文件。然后将下载任务添加到中。 这里有一些问题: 我知道是由某些已定义的操作触发的。但是我想要创建一个后台服务,监视,如果有新消息可用,那么将调用一些线程来操作任务。 如果我对这个定制商品
本文向大家介绍Android IntentService详解及使用实例,包括了Android IntentService详解及使用实例的使用技巧和注意事项,需要的朋友参考一下 Android IntentService详解 一、IntentService简介 IntentService是Service的子类,比普通的Service增加了额外的功能。先看Service本身存在两个问题: Servi
我关心的是提高源代码可读性,并且它涉及到通过将庞大的方法分解成更小的(简洁的)方法来减小它们的大小。简单地说,我有一个非常完整的方法,它可以做很多不同的事情,例如: 我想将方法更改为: 我关心的是应用这种重构时的性能(时间和内存)。对于一个很小的人名单,当然不是问题,但是我担心的是这个名单的渐近增长。 例如,对于更老式的我可以看到以下影响: 我知道Java是如何将foreach指令转换为的。因此,
我对IntentService的使用有点困惑。 文档中说,IntentService将发送给它的所有意图排队,并一次处理一个意图 我很确定我在文档中读到过这样的情况:系统只调用onStartCommand()一次,如果您发出两次startService(),第二次调用不会导致调用onStartCommand()<我可能错了,因为我一直在寻找这篇文档,但似乎找不到 这与之前的概念相矛盾,即可以通过o
我需要创建一个并行执行多个操作的应用程序。我曾考虑过使用线程或线程池,但我以前从未使用过,所以我发现这相当困难。Thread应按以下方式工作: 所有系统应同时运行。你认为我应该如何实现这一点?
我们目前正在使用Windows\Jenkins 2.107.1(无管道),我正在研究管道。我们有一个夜间构建作业,它从存储库中获取、提交和等待其他作业。我看到9个作业同时在同一主节点上运行(我们只有一个主节点)。我不清楚我们应该有一个Jenkinsfile还是多个Jenkinsfile。它不会是一个多分支管道,因为我们不会创建测试分支,然后再合并回主管道。在存储库中,我们有product1.0分支