我有一个带有AlarmManager的Android应用程序,每15分钟重复一次。根据我的结果,我想更新UI,但我不希望Android将应用程序带到前台,如果它没有焦点。
我该怎么做?或者,如何在onResume中运行UI更新?
我在服务和类的主要活动中调用public static void updateRunningStatusTextView(Boolean inStatus)
之类的方法
答案 0 :(得分:0)
@Override
protected void onRestart() {
super.onRestart();
new Handler().postDelayed(new Runnable() {
public void run() {
// update UI here from cached values
}
}, 100);
}
答案 1 :(得分:0)
我很确定你的第一个选择不会发生。有postInvalidate()
可以从非View
主题更新UI
,但这是可用的
...仅当此视图附加到窗口时。
根据Docs
或者,如何在onResume中运行UI更新?
这取决于许多内容,例如View
,数据以及代码中的内容,但您可以将数据设置为静态类,或者将其保存为SharedPreferences
之类的内容然后检索来自那里的数据,比如在String
的{{1}}中使用setText()
答案 2 :(得分:0)
嗯,你没有。如果它在后台,您不需要更新UI!
然后,您只需要在恢复应用程序(onResume)时使用您拥有的最新数据更新UI。