Articles of android intentservice

即使应用程序关闭,如何保持IntentService运行?

在我的Android应用程序中,我通过调用从Activity中启动IntentService startService(new Intent(this, MyService.class)); 它就像一个魅力。 我可以在Activies之间移动,按Home键切换到其他应用程序……它仍在工作。 但如果我从最近的屏幕上删除我的应用程序,我的服务就会停止。 我怎么能避免这个? 换句话说,即使我的应用程序已从最近的应用程序关闭,如何保持我的服务运行? 我的服务代码如下: public class MyService extends IntentService { public MyService() { super(“MyService”); } @Override protected void onHandleIntent(Intent intent) { //Here I run a loop which takes some time to finish } }

Android IntentService无法实例化类; 没有空的构造函数

我有一个需要访问在线API的MainActivity类(因此使用网络资源)。 这需要我在单独的文件HttpRequestService.java创建的后台线程。 MainActivity.java: public class MainActivity extends Activity { public static final String API_KEY = “KEYKEYKEYKEYKEY”; public static final String CLIENT_ID = “IDIDIDIDIDIDID”; private final String BROADCAST_ACTION = “com.example.BROADCAST”; private final String EXTENDED_DATA_STATUS = “com.example.STATUS”; static final String LOGCAT_TAG = “TAGTAGTAGTAGTAG”; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override protected void onResume() { […]

IntentService的onHandleIntent(Intent)获取null参数

我正在使用IntentService在Android上为我的应用程序运行后台服务。 奇怪的是,我收到很多崩溃报告,其中传递给onHandleIntent的意图为空。 我甚至不确定这是怎么可能的,而且看起来非常奇怪。 任何人都可以建议为什么会发生这种情况? 堆栈跟踪 java.lang.NullPointerException at com.example.MyService.onHandleIntent(MyService.java:466) at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.os.HandlerThread.run(HandlerThread.java:61) 我的服务文件中的第466行,其中空指针exception: 465 protected void onHandleIntent(Intent intent) { 466 Bundle data = intent.getExtras(); 该服务启动为: serviceIntent = new Intent(this, MyService.class); serviceIntent.putExtra(“ip”, ip); serviceIntent.putExtra(“port”, port); startService(serviceIntent); 编辑:我现在意识到我可能会误用IntentServices。 当我启动服务时,我从onHandleIntent()开始一些工作线程,即使在onHandleIntent()返回后也继续运行。 并通过绑定到服务并调用成员函数/回调来与线程通信。 我将研究使用更好的方法来为此目的使用服务,同时我仍然不明白传递的意图是如何为空。 我只能怀疑Android系统自己使用null意图调用onHandleIntent,这似乎很奇怪。 有人可以解释为什么android系统可能以这种方式调用它吗?

IntentService多次调用startService时,intent是否会进入队列?

我想用IntentService从网上下载。 我通过调用startService(intentserive); Intent传递给IntentService startService(intentserive); 。 如果我为各种意图调用startService ,意图是否进入队列下载?

本地崩溃在/system/lib/libart.so

我在Play商店中有一个应用程序,它有一个IntentService ,在应用程序启动时执行一些工作,并导致Android 5.0上的本机崩溃。 此服务只是扫描资产文件夹的应用程序更新的目的。 具体来说,这个崩溃似乎发生在三星S5后升级到棒棒糖,但我不知道它是否严格相关的设备,因为这是一个意大利的应用程序,这里仍然是唯一广泛弥散(即我所知)设备是越来越棒棒糖。 不过,我在模拟器上试了一下,现在有了Android 5,而且工作正常。 我附上的堆栈跟踪,如何进行的任何帮助将不胜感激…与本机的问题,我不知道该把手放在哪里。 *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** Build fingerprint: 'samsung/kltexx/klte:5.0/LRX21T/G900FXXU1BNL9:user/release-keys' Revision: '14' ABI: 'arm' pid: 24219, tid: 24259, name: IntentService[I >>> it.mydomain.myapp <<< signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 r0 afcb8c00 r1 001000e6 r2 af201428 […]

在代码中的“华硕自动启动pipe理器”默认设置“允许”权限

我有一个应用程序需要在后台运行,所以我使用了一个WakeFullService。 但在华硕Zenfone它不工作,因为自动启动pipe理器不允许应用程序运行。 我的期望是: 在应用程序安装期间或在应用程序打开时,在自动启动pipe理器中设置“允许”权限。 华硕自动启动pipe理器提供的API可以帮助我检查我的应用程序的权限状态,以便我可以通过正常的文本提示通知用户打开权限。

我应该使用服务或IntentService为我的Android应用程序?

请纠正我如果我错了: 1) 服务用于在后台执行长时间的任务。 一个服务在UI线程中运行,所以如果有一个很长的任务,那么它可能会冻结我们的用户界面。 只要我们告诉它停止,服务将继续独立于应用程序运行。 2)另一方面, IntentService用于在单独的线程中执行短任务。 它在完成任务时自动终止。 我需要做的是: 1)每5秒检查一次位置 2)如果位置发生变化,则将其发送到服务器,并用新的位置值更新UI 什么困惑我: 我应该使用一个服务或IntentService,因为我需要5秒钟后继续做,不希望我的UI线程变得没有响应。 这个应用程序将用于追踪车辆。

Android:多个intentservices或一个intentservice有多个意图?

我对intentService有点困惑。 文档说,如果你发送一个intentService多个任务(intents),那么它将在一个单独的线程上一个接一个地执行它们。 我的问题是 – 是否有可能同时有多个intentService线程? 如何区分代码在同一个intentService(同一个线程)上创build三个不同的intent,还是三个独立的intentServices,每个intentServices都有自己的线程和一个intent来执行? 换句话说,当你执行startService(intent)命令时,你是把意图放在一个队列中,还是每次都启动一个新的队列? Intent someIntent1 = new Intent(this, myIntentService.class); Intent someIntent2 = new Intent(this, myIntentService.class); Intent someIntent3 = new Intent(this, myIntentService.class); startService(someIntent1); startService(someIntent2); startService(someIntent3);

有什么发展模式可以取代networking请求的IntentService?

在我与同事一起开发的当前应用程序中,我们使用带有Volley调用的IntentServices来处理RESTful APInetworking请求。 这只是简单的JSONstring数据和一些小图片。 我对那些处理networking请求经验丰富的人提出的问题是:是否有更合适的或更清晰的实现? 据我所知,使用IntentService的好处是它在主线程的后台运行,通常是Android操作系统杀死的最后一件事情之一。 IntentServices是顺序运行的缺点。 我一直在阅读很多有关RxJava和Retrofit的文章,觉得我们的需求可以更好地融合在一起。 改造可能是足够的,但我真的很感激一些第三方的见解。

在IntentService和AsyncTask(Android)之间使用共享代码时,领域从不正确的线程访问错误

我有一些下载“当前”对象的JSON的代码。 但是,当警报响起(应用程序不运行任何UI)时,IntentService需要调用相同的代码,并且在应用程序正在运行时也需要使用AsyncTask。 不过,我得到一个错误,说Realm access from incorrect thread. Realm objects can only be accessed on the thread they were created. Realm access from incorrect thread. Realm objects can only be accessed on the thread they were created. 但是,我不明白如何或为什么这个堆栈跟踪了不同的线程。 我能够通过复制所有的共享代码,并直接将其粘贴到DownloadDealService的onHandleIntent方法中来摆脱错误,但是它非常草率,我正在寻找一个不需要重复代码的更好的解决scheme。 我怎样才能摆脱这个错误,没有重复的代码? 谢谢。 public class DownloadDealService extends IntentService { … @Override protected void onHandleIntent(Intent intent) { Current todaysCurrent […]