【发布时间】:2016-02-23 13:14:43
【问题描述】:
我正在尝试让进程计时器运行并使其在 android 的后台运行(从单击按钮开始)。
计时器必须开启 30 秒,甚至应该在后台继续增长应用程序(主页按钮和电源/屏幕关闭)。
我该怎么做?我尝试了服务和处理程序,但没有工作......
编辑
我的服务跟踪(30 秒的过程)
public class TrackingService extends IntentService {
private Handler mHandler;
private Runnable mRunnable;
public TrackingService() {
super("TrackingService");
}
public TrackingService(String name) {
super(name);
}
@Override
protected void onHandleIntent(Intent intent) {
long timer = 30000;
mHandler = new Handler();
mRunnable = new Runnable() {
@Override
public void run() {
//TODO - process with update timer for new 30 sec
mHandler.postDelayed(this, timer);
}
};
mHandler.postDelayed(mRunnable, timer);
}
}
我的点击按钮:
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//TODO - start first time and it continued every 30 seconds and continue in the background
startService(Intent intent = new Intent(this, TrackingService.class));
}
});
【问题讨论】:
-
欢迎来到 StackOverflow !如果您正在寻找问题的答案,您应该考虑先向我们提供您的方法,以便我们可以帮助您了解您做错了什么/该怎么做。
-
您不能在关机的设备上运行任何东西。除此之外,请检查
AlarmManager和/或JobScheduler -
关于在后台运行某些东西的注意事项,Android OS 保留在认为必要时随时终止后台进程的权利。如果它是一个必须调用的关键任务计时器,您可能需要重新考虑您的方法。