我有一个andoID-app,当用户登录时连接到WebSocket服务器.
如果用户空闲一段时间或由于某种原因他的会话到期/终止,应用程序将通过WebSocket连接得到通知,我想让他回到登录活动(如果他是,则应用程序中没有任何功能)未登录).
我已经研究了广泛的Intents和runOnUIThread(),但似乎无法让它工作.
我的想法是简单地注册正在运行的活动(例如,所有这些都实现了一个接口)并进行调用,但这意味着所有活动都必须实现该接口.它们中的大多数已经从BaseActivity类继承,但不是全部.
我意识到突然破坏用户流的不良做法,但除非用户有有效的会话,否则任何功能都不会起作用.
我使用android-websocket(https://github.com/koush/android-websockets)库作为客户端,如果这有任何区别.
在此先感谢托马斯
编辑:有时我也想以Toast或Dialog的形式通知用户服务器上发生了某个事件.
解决方法:
我认为这两种方法中的任何一种都应该有效:
>使用处理程序:在Activity中设置一个处理程序,覆盖其handleMessage,这样当你向它发送消息时,只需将你的Activity带到前面(或启动它).把它带到前面:
Intent i = new Intent(this, MyMainActivity.class);i.setAction(Intent.ACTION_MAIN);i.addcategory(Intent.category_LAUNCHER);startActivity(i);
>使用broadcastReceiver:没有理由不这样做,只需声明你的接收器,注册它以进行某些 *** 作(可能是自定义的)并以与上面相同的方式启动活动.一旦完成或关闭应用程序,请不要忘记取消注册.
如果您需要任何示例,请询问它.
总结以上是内存溢出为你收集整理的android – 从后台线程启动活动全部内容,希望文章能够帮你解决android – 从后台线程启动活动所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)