问题标签 [intentservice]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android:在片段中启动意图服务
我在一个活动中有多个片段。每个片段都必须显示一些使用 REST 从服务器获取的数据。我一直在IntentService
为 REST 请求使用相应的接收器。现在我可以通过将片段作为活动中的内部类来做到这一点。
我对内部类的问题是,在方向改变时,会抛出一个错误,比如“无法实例化片段,没有空的构造函数”。对于这个问题,在搜索中我找到了诸如将内部类设为静态或为 Fragment 创建一个独立的公共类之类的答案。我仍然不明白为什么会在方向改变时发生这种情况。
现在,如果我采用为 Fragment 创建一个单独的独立类的方法,我将不得不将活动对象传递给 dostartService
和registerReceiver
. 而且我不想使用AsyncTask
它,因为在我的应用程序中,我在单个片段中执行多个 REST 请求,并IntentService
允许在每个请求之后发送广播,这样我就不必等到所有请求都完成才能开始加载屏幕。而且我觉得将活动对象传递给片段是不行的。片段不应该与活动尽可能松散耦合,以便可以在多个活动中使用相同的片段吗?如果是,解决此问题的最佳方法是什么?
android - 同时安装了两个具有相同代码库的 Android 目标
我正在尝试使用库项目构建从同一代码库派生的两个不同的 Android 应用程序。
这些应用程序正在使用意图服务进行各种操作,但是当我有两个使用同时安装的相同代码库的应用程序时,这似乎失败了。
似乎只有我安装的应用程序的第一个版本有效,第二个似乎没有让服务运行。
有没有人有这方面的经验?这怎么可能解决?
编辑:这些是清单
根据:
目标1:
目标 2:
android - 最省电的位置跟踪实施?Intent/BroadcastReceiver/LocationListener/Service/IntentService/AlarmManager?
我已经通过解决方案,发现有很多方法可以实现位置跟踪逻辑。
- Intent+BroadcastReceiver+LocationListener
- Intent+IntentService+AlarmManager
- 位置监听器
- 其他技术或上述的不同组合......
我正在尝试找出实现相同目标的最佳实践(最省电的方式)...
我有一个库类 MyLocationClass.java,它有两种方法 1. startTracking() - 在 T 时间之后开始发送用户位置,并且仅当用户移动了 X 距离 2. stopTracking() - 停止发送位置更新。
一个简单的答案似乎是 LocationListener,因为它内置的 Time Passed/Distance Moved 功能提供了更好的用户体验,但随后......
我不希望 GPS 一直处于开启状态?事实上,它应该只在 T 和 X 交叉时打开。使用 Service/IntentService 和/或/与警报管理器 Timer 会是更好的解决方案吗?带有 LocationListeners 的广播接收器能否被证明是更好的解决方案?
请建议。
android - Android 4.0.3 上的 NetworkOnMainThreadException
我有一个意图服务,可以将数据从手机上传到我的服务器。只要网络连接可用,我就从广播接收器启动它。一切正常,但是当我通过 Android 4.0.3 模拟器对其进行测试时,它给出了严格模式错误 android.os.NetworkOnMainThreadException。就像这个网络作业在主线程上一样,但据我所知,intentservice 已经创建了一个工作线程。我也发现了这个链接http://code.google.com/p/android/issues/detail?id=23495说将网络作业移动到后台线程。工作线程不是后台线程吗?
编辑:这是我的广播接收器。
这是我在 LogCat 中看到的错误:
android - 停止 IntentService 的正确方法
我正在使用 IntentService 将图像上传到服务器。我的问题是我不知道如何/何时停止服务。当我在 onHandleIntent(Intent ..) 中调用 stopself() 时,所有在 IntentService 队列中等待的 Intent 都会被删除。但是我不想从活动中停止服务,因为即使我的应用程序没有运行,我也想完成上传过程。
android - 使用警报管理器启动服务,但仅在主应用程序未运行时
好的,这里的问题是我有一个通过蓝牙连接到手机的摄像机。与设备的所有通信都是通过 android 服务进行的。该服务会定期使用 GPS 坐标更新相机。不幸的是,该服务不是由我的公司编写的,我们只能控制它的启动和发送命令(但是,如果连接到设备,它会自行执行 GPS)。一旦我们的应用程序启动了服务,我们就会尝试连接到任何包含我公司 OUI 的配对设备。一旦设备断开连接(可能是关闭或电池耗尽),它不会自动重新连接,直到用户重新启动我们的应用程序。因此,在这种情况下,GPS 坐标不会被发送到相机。
这是一个问题,因为用户(对这些服务一无所知,什么都不知道)会认为如果他重新打开设备,它应该被连接。
所以我想我可以将 AlarmManager 与广播接收器或服务一起使用(可能是意图服务,因为连接需要几秒钟才能完成)。也许每隔几分钟我可以检查一次与相机的连接。如果它的存在只是退出,并且如果没有尝试连接(如果有配对的设备)。
但是问题是如果我的应用程序已经在运行怎么办?如果是,则用户控制连接到设备(提示他们)。我是否需要使用共享首选项或类似的东西来判断我的应用程序是否正在运行/关闭?有什么方法可以从服务中判断应用程序是否正在运行?我可以看到这变得棘手。如果有人知道如何处理这个问题,请告诉我。
android - IntentService 中实现的 Android LocationLister 从不执行 OnLocationChanged() 方法
我编写了一个实现 LocationListener 接口的 IntentService。当第一次调用 OnLocationChanged() 方法时,服务应该发送一条消息。但是永远不会调用 OnLocationChanged()。这是我的代码:
有人有想法吗?
android - 从 Activity 停止 IntentService
我需要帮助解决这种情况:
- 我有活动,什么启动 IntentService。
- 服务在循环中做一些工作并休眠一段时间。
- 服务的主要周期是无止境的,所以我需要再次停止它的活动。
我必须能够结束活动,重新启动它并从新的活动“实例”中停止 IntentService。
/li>
...
我试过打电话stopService()
,但它不起作用。有什么解决方案如何做到这一点?提前致谢。
android - google io 2010 中的其余客户端应用程序设计方法是否仍然是最新的?
两年前,出现了片段、意图服务、游标加载器。该方法是否仍然是最新的,或者是否有更好或成熟的模式来设计一个android rest客户端,特别是与选项B相比(我没有发布图像的特权,而是可以从这篇文章中找到图像)。
我知道内容提供者部分是必不可少的。服务助手和服务组件呢?到目前为止,startService 方法是 Context 或其子类的一种性质。这意味着服务助手将是一项活动。那么从内容提供者发起活动是优雅的,还是应该从顶部的活动发起。
- 对于那些深入研究google io 2011 iosched 应用程序源代码的人,您是否会将 HomeActivity 中的静态类 SyncStatusUpdaterFragment 视为服务助手,虽然它无法启动 SyncService,但它确实会监听来自 SyncService 的回调和触发 UI 刷新。那么它是否可以被视为 Virgil Dobjanschi 方法的一种变体?
有服务、意图服务、异步任务和线程。在我看来,意图服务适用于从远程服务器同步大量数据。这就是他们在iosched中使用它的原因。但常见的情况是只有部分项目会与远程服务器同步。所以意图服务太重了。甚至服务方式。我们是否可以只使用内容提供程序中的 asyncTask 或线程或其中的某个组件来完成此类任务。或者是否有任何令人信服的理由来使用该服务,并通过服务助手-服务-处理器路径。我说的是一个严肃的应用程序。
那你怎么看?
android - Android:IntentService 在某些情况下会冻结我的 Activity 中的 UI。如何预防?
当我第一次安装我的应用程序时,IntentService 工作正常且异步(从启动器 Activity 的“onCreate()”中调用“startService”不会冻结 Activity UI)。但是,当我在现有安装上再次安装它时,启动器 Activity 的 UI 会挂起,直到启动的 IntentService 的“onHandleIntent”完成(即使我将“startActivity”放在“AsyncTask doInBackground”或“Handler post”中)。是什么赋予了?我假设 IntentService 应该始终是异步的,但在这种情况下它不是。如何保证“onHandleIntent”始终异步执行并且不会阻塞调用它的 Activity 的 UI?当有人安装更新等时,这似乎会影响应用程序。