我有一个每两秒读取Android剪贴板内容的函数,并与远程服务器通信所有更改。
这在应用程序打开时工作正常。但是我需要能够在关闭应用程序后继续记录剪贴板更改。
所以我尝试了IntentService
,但它并不欣赏长循环。
如何在后台运行无限循环?
答案 0 :(得分:2)
我有一个每两秒读取Android剪贴板内容的函数,并与远程服务器通信所有更改。
轮询?你这样做非常错了。您应该使用OnPrimaryClipChangedListener代替。
修改强>
与远程服务器通信所有更改。
我刚刚意识到你基本上在那里做了一些不好的事情,我有点怀疑你的用户是否意识到你在监视他们?您的应用是否在Google Play中,如果是,那么您的应用套件ID是什么?
答案 1 :(得分:1)
package.json
来处理来自其他应用程序组件的单个“请求”。
使用started service更适合您描述的问题。开始服务运行,直到您手动停止它或直到系统资源耗尽并终止整个过程。
使用IntentService
作为START_STICKY
方法的返回值,以便在系统终止时自动重新启动它。
如果您也使用onStartCommand()
BroadcastReceiver
启动它,则会在设备启动后启动操作服务。
答案 2 :(得分:0)
通过在Service
中返回START_STICKY
来实施onStartCommand
并将其设为粘性(请参阅Documentation):
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// We want this service to continue running until it is explicitly
// stopped, so return sticky.
return START_STICKY;
}