草庐IT

intentService

全部标签

java - 方法 onHandleIntent() 没有被调用

经过几个小时的研究,我终于咨询了官方帮助。为什么onHandleIntent()没有被调用?这里有什么问题吗?在主要ActivityonCreate()中:mService=newIntent(context,xyz.class);startService(mService);就是这样。onStartCommand()被调用,但onHandleIntent()没有被调用packagecom.autoalbumwallaperplus;importandroid.app.IntentService;importandroid.content.Intent;importandroid.wi

android - 如何验证 IntentService 启动

我正在尝试使用Espresso-2.2测试我的应用程序行为在主要Activity中,当按下按钮时,服务和另一个Activity都将启动:publicclassMainActivityextendsActivity{publicvoidonButtonClicked(){startActivity(SecondActivity.getStartIntent());startService(MyIntentService.getStartIntent());}}我正在测试预期的组件是否正在启动:publicclassMainActivityTest{@RulepublicfinalInte

android - IntentService 未被调用

我正在尝试从Activity中的onCreate发送Intent以启动IntentService。然而,从未收到IntentService的onHandleIntent。我曾尝试使用Intent-filters更改Manifest,但似乎没有任何效果。没有抛出异常,但根本没有调用IntentService。这是onCreate@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);db=newTwitter

android - IntentService 的 onStartCommand(..) 方法线程安全吗?

我有一个IntentService可以从复杂应用程序的不同位置启动的类-Activity、后台线程、其他服务。我想记录服务被调用的次数。我在我的IntentService类中使用一个私有(private)int变量来跟踪它,我从我的onStartCommand(...)中递增它方法。我刚刚想到,因为可以从各种异步线程调用onStartCommand(...)方法,这可能不是线程安全的解决方案。所以问题是,我是否需要将对此计数器变量的访问包装在一个同步块(synchronizedblock)中,或者onStartCommand(...)的IntentService实现是否会为我处理这个?

两个服务之间的Android通信

我知道一个activity可以使用IBinder接口(interface)与本地服务通信;我正在尝试找到一种在两种服务之间进行通信的方式。具体来说,我的主要服务启动了一个IntentService来处理文件上传。我希望此IntentService在上传完成后并在它消失之前通知主服务。关于这将如何发生有什么想法吗? 最佳答案 您必须使用BroadcastReceiver来接收Intent,当您想要进行通信时,只需创建一个具有适当值的Intent。通过这种方式,您应该能够在任何组件之间进行双向通信。

android - 使用 LinkedBlockingQueue 实现 IntentService?

我正在尝试使用IntentService下载多个文件。IntentService一次按预期下载它们,唯一的问题是当Internet出现故障时,intent服务不会停止下载,而是会卡在当前线程上。如果我设法停止当前线程,它将继续运行存储在其队列中的其他线程,即使互联网连接已断开也是如此。在另一篇文章中有人建议我使用LinkedBlockingQueue并创建我自己的Worker线程,该线程会不断检查此队列中是否有新线程。现在我知道在创建和销毁线程时会增加一些开销,从而导致性能问题,但这对我来说不是问题。在这一点上,我想做的就是了解IntentService是如何工作的,但我还没有(我已经

android - 快速连续多次启动 Intent 服务会导致额外的空值吗?

我们发现一个问题,我们的一个Intent服务意外地为我们的一些用户检索了一个null字符串。我们无法重现此问题,也不知道它在受影响用户的设备上是随机的还是一致的。受影响的用户与设备类型或Android版本之间似乎没有关联。我正在扩展IntentService并实现handleIntent方法,如下所示:@OverridepublicvoidhandleIntent(Intentintent){Stringaction=intent.getAction();if(action.Equals(ACTION_MARK_UNREAD)){StringmessageKey=intent.getS

android - 如何从 IntentService 获取 FusedLocation

如何使用新的FusedLocation检索当前位置来自IntentService的API?我如何确保IntentService将收到所有来自FusedLocationAPI的回调?IE,如何同步获取位置对象? 最佳答案 这可能对你有帮助importjava.util.ArrayList;importjava.util.List;importorg.apache.http.NameValuePair;importorg.apache.http.message.BasicNameValuePair;importorg.json.JSON

android - 如何停止 IntentService?

我使用IntentService来处理我的应用程序中的大型文件下载。但是,当我想取消下载时,我会调用stopService(intent)。然而onDestroy()方法被调用但下载并没有停止。我还需要做什么才能取消下载?谢谢。 最佳答案 我自己还没有弄清楚,但我发送了一个Intent:intent.putExtra("pause","yes");startService(intent);然后我在IntentService中重写publicintonStartCommand(Intentintent,inta,intb)(不推荐),

android - API 26 (Android 8.0 Oreo) 弃用了 IntentService + WakefulBroadcastReceiver + AlarmManager。哪个是最好的选择?

有时在我的应用程序中,我需要在后台重复执行某些操作(每X小时)。我使用的API25:AlarmManager带setInexactRepeating(尊重电池)WakefulBroadcastReceiver有足够的时间完成所有工作IntentService在后台线程中完成所有工作在API26上,所有这些都已弃用或受到限制,建议使用JobScheduler和JobService代替。问题是JobService在主线程中运行。我想在JobService中使用AsyncTask并在onPostExecute中调用JobService.jobFinished这是执行此操作的正确方法吗?