gpt4 book ai didi

android - 当 Activity 关闭/重新启动时,继续从服务更新 Android UI

转载 作者:行者123 更新时间:2023-11-29 01:53:05 24 4
gpt4 key购买 nike

想弄清楚这个问题一段时间。我有一个应用程序在单独的 service 中运行倒计时,它调用 startsForeground,显示通知。我通过一个按钮启动倒计时服务:

            Intent i = new Intent(getApplicationContext(),  PomoService.class);
i.putExtra("EXTRA_MESSENGER", new Messenger(handler));
startService(i);

我用 handler 更新 UI,它接收包数据告诉倒计时还剩多少毫秒,通过 onTick() 方法中的消息发送:

Messenger messenger = (Messenger)extras.get("EXTRA_MESSENGER");
Message msg = new Message();
Bundle b = new Bundle();
b.putLong("remainingTime", millisUntilFinished);
msg.setData(b);
try {
messenger.send(msg);
} catch (RemoteException e) {
Log.i("error", "error");
}

在 Activity 中:

    private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
long sentTime = msg.getData().getLong("remainingTime");
textCountdownMin.setText(String.format("%02d", (sentTime/1000)/60));
textCountdownSec.setText(":" + String.format("%02d", (sentTime/1000)%60));
}
};

整个设置工作正常,唯一的问题是如果用户点击后退按钮或从最近的应用程序列表中滑动应用程序,然后从抽屉或正在进行的通知中重新打开它,文本不会被更新任何更多。不过,倒计时仍在进行中,因为我可以从仍然显示的通知和我使用 AlarmManager 唤醒屏幕的事实中看到它,并且它已正确启动。

关于我应该采取什么措施的任何线索?

最佳答案

我使用 LocalBroadcastManager 解决了这个问题:Android update activity UI from service

关于android - 当 Activity 关闭/重新启动时,继续从服务更新 Android UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16781035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com