gpt4 book ai didi

android - 从后台线程启动 Activity

转载 作者:太空宇宙 更新时间:2023-11-03 11:57:55 26 4
gpt4 key购买 nike

当用户登录时,我有一个连接到 WebSocket 服务器的 andoid-app。如果用户闲置了一段时间或出于某种原因他的 session 过期/终止,应用程序会通过 WebSocket 连接得到通知,我想把他带回登录 Activity (如果他是,应用程序中没有任何功能未登录)。

我研究了广播 Intents 和 runOnUIThread(),但似乎无法使其正常工作。我的想法是简单地注册正在运行的 Activity (例如,让所有 Activity 都实现一个接口(interface))并进行调用,但这意味着所有 Activity 都必须实现该接口(interface)。它们中的大多数已经继承自 BaseActivity 类,但不是全部。

我意识到突然中断用户流是一种不好的做法,但除非用户有一个有效的 session ,否则所有功能都不会起作用。

如果有任何不同,我将使用 android-websocket ( https://github.com/koush/android-websockets) 库作为客户端。

提前致谢托马斯

编辑:有时我还想以 Toast 或 Dialog 的形式通知用户服务器上发生了某个事件。

最佳答案

我做了测试

  • 您可以从非 ui 线程启动 Activity
  • 您可以从非 ui 线程完成 Activity

看看 ACRA 项目 - 很好的异常处理。在 ReportExecutor 的第 217 行 (https://github.com/ACRA/acra/blob/master/acra/src/main/java/org/acra/builder/ReportExecutor.java#L217) 中, Activity 在全新的线程中启动(没有 runOnUiThread)。

我很惊讶为什么它能工作:)

关于android - 从后台线程启动 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21754014/

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