我想弄清楚如何执行此操作,我想根据服务器发出的数据创建计时器,例如:3600 <-来自服务器,因此我想创建计时器这段时间有一个TextView每隔1秒钟更新一次,一旦计时器完成,就创建一个对话框,我知道该怎么做是没有必要的,但是我想让用户将应用程序置于后台计时器保持运行。
我想创建一个BroadcastService
并从那里更新TextView
,如果应用在onPause()
中进入后台,我应该做一些事情来保持计时器的运行,并且考虑到计时器是否已完成,请将其添加到SharedPreferences中,这样我就可以知道计时器是否已完成(如果用户在后台运行应用程序)。
我该如何实现?
答案 0 :(得分:2)
Use foreground service we can run countdowntimer that runs in background
答案 1 :(得分:1)
您可以使用Handler在您的自定义Application类中进行定期同步。仅当您的应用程序被杀死时,该处理程序才会被销毁。
您可以将Application类扩展为:
public class App extends Application {
private static final long ONE_MINUTE = 60 * 1000;
private Handler handler;
@Override
public void onCreate() {
super.onCreate();
this.handler = new Handler();
this.handler.postDelayed(syncData, ONE_MINUTE);
}
private Runnable syncData = new Runnable() {
@Override
public void run() {
// TODO startSync();
handler.postDelayed(this, ONE_MINUTE);
}
};
}
在该Runnable中,您可以做任何您想做的事,例如使用共享的首选项。
您可以将此自定义App
类设置为AndroidManifest.xml
中的应用程序类。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="your_package_name">
<application
android:name=".App"
rest of your code .... >
</application>
</manifest>