Tho*_*s H 73 android android-service background-thread
我正在创建一个类似于内置SMS应用程序的应用程序.
我需要的:
我尝试过:
- 运行常规服务,直到Android杀死服务一直工作
- 使用AlarmManager进行5分钟.间隔呼叫服务.但我无法做到这一点.
Com*_*are 33
始终在后台运行的服务
正如您所发现的那样,这在任何真正意义上都是不可能的.这也是糟糕的设计.
每5分钟一次.该服务检查设备的当前位置并调用Web服务
使用AlarmManager
.
使用AlarmManager进行5分钟.间隔呼叫服务.但我无法做到这一点.
这是一个示例项目,展示如何使用它,以及使用,WakefulIntentService
以便您在尝试执行整个Web服务时保持清醒.
如果你继续遇到问题,请打开一个关于你遇到的具体事情的新问题,AlarmManager
这会给你带来悲伤.
Jim*_*ler 26
我的一个应用程序做了非常相似的事情.我建议在一段时间后唤醒服务postDelayed()
有一个处理程序字段:
private final Handler handler = new Handler();
Run Code Online (Sandbox Code Playgroud)
和复习 Runnable
private final Runnable refresher = new Runnable() {
public void run() {
// some action
}
};
Run Code Online (Sandbox Code Playgroud)
您可以在runnable中触发通知.
在服务构建上,每次执行后都会这样开始:
handler.postDelayed(refresher, /* some delay in ms*/);
Run Code Online (Sandbox Code Playgroud)
在onDestroy()
删除帖子
handler.removeCallbacks(refresher);
Run Code Online (Sandbox Code Playgroud)
要在启动时启动服务,您需要一个自动启动器.这就在你的清单中
<receiver android:name="com.example.ServiceAutoStarter">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
和ServiceAutoStarter
看起来像这样:
public class ServiceAutoStarter extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
context.startService(new Intent(context, UpdateService.class));
}
}
Run Code Online (Sandbox Code Playgroud)
停止操作系统杀死服务非常棘手.你的应用程序也可以RuntimeException
崩溃,或者你的逻辑可以停止.
在我的情况下,似乎总是有助于在屏幕上刷新服务BroadcastReceiver
.因此,如果更新链停滞不前,它将在用户使用手机时重新启动.
在服务中:
private BroadcastReceiver screenOnReceiver;
Run Code Online (Sandbox Code Playgroud)
在您的服务中 onCreate()
screenOnReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Some action
}
};
registerReceiver(screenOnReceiver, new IntentFilter(Intent.ACTION_SCREEN_ON));
Run Code Online (Sandbox Code Playgroud)
然后在注销你的服务onDestroy()
有
unregisterReceiver(screenOnReceiver);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
75690 次 |
最近记录: |