如何创建从活动更新 TextView 的计时器,以及当应用进入后台时,它会继续运行

我试图弄清楚如何做到这一点,我想从服务器提供的数据中创建一个计时器,例如:3600 < - 这来自服务器,所以我想用这个时间创建一个计时器,并有一个TextView,每1秒更新一次,一旦计时器完成,创建一个对话框, 这不是必要的,我知道该怎么做,但我想做,如果用户把应用程序放在后台计时器继续运行。

我想的是创建一个并从那里更新,如果应用程序在后台运行,我应该做一些事情来继续运行计时器,并且还考虑计时器是否完成,将其添加到SharePreferences,以便我可以知道计时器是否完成(如果用户在后台拥有该应用程序)。BroadcastServiceTextViewonPause()

我怎样才能做到这一点?


繁华开满天机
浏览 133回答 2
2回答

开满天机

Use&nbsp;foreground&nbsp;service&nbsp;we&nbsp;can&nbsp;run&nbsp;countdowntimer&nbsp;that&nbsp;runs&nbsp;in&nbsp;background前台服务示例 Github

翻过高山走不出你

可以使用处理程序在自定义应用程序类中执行定期同步。仅当你的应用被终止时,该处理程序才会被销毁。您可以将应用程序类扩展为如下所示:public class App extends Application {&nbsp; &nbsp; private static final long ONE_MINUTE = 60 * 1000;&nbsp; &nbsp; private Handler handler;&nbsp; &nbsp; @Override&nbsp; &nbsp; public void onCreate() {&nbsp; &nbsp; &nbsp; &nbsp; super.onCreate();&nbsp; &nbsp; &nbsp; &nbsp; this.handler = new Handler();&nbsp; &nbsp; &nbsp; &nbsp; this.handler.postDelayed(syncData, ONE_MINUTE);&nbsp; &nbsp; }&nbsp; &nbsp; private Runnable syncData = new Runnable() {&nbsp; &nbsp; &nbsp; &nbsp; @Override&nbsp; &nbsp; &nbsp; &nbsp; public void run() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // TODO startSync();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; handler.postDelayed(this, ONE_MINUTE);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; };}在该Runnable中,您可以做任何您想做的事情,例如使用共享首选项。您可以在 中将此自定义类设置为应用程序类。AppAndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"&nbsp; &nbsp; xmlns:tools="http://schemas.android.com/tools"&nbsp; &nbsp; package="your_package_name">&nbsp; &nbsp; <application&nbsp; &nbsp; &nbsp; &nbsp; android:name=".App"&nbsp; &nbsp; &nbsp; &nbsp; rest of your code .... >&nbsp; &nbsp; </application></manifest>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java