Android,通过Handler.post函数调用finish()
Posted
技术标签:
【中文标题】Android,通过Handler.post函数调用finish()【英文标题】:Android, call finish() through Handler.post function 【发布时间】:2017-03-27 09:42:15 【问题描述】:我有活动 A 和 B 现在我有一些在另一个线程中处理的“事件”。 如果触发,应用应该启动 B,然后销毁 A。
在线程中,我有一个处理程序来将内容发布到 UI 线程。
Handler hexample = new Handler(Looper.getMainLooper());
现在切换没问题,但是调用finish()方法是:
hexample.post(new Runnable()
@Override
public void run()
Intent intent = new Intent(getApplicationContext(),LobbyActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
((Activity)getApplicationContext()).finish();
);
这不起作用,因为我的课程不能转换为 android.app.Activity 如何让它发挥作用?
【问题讨论】:
【参考方案1】:finish() 就足够了,不需要强制转换。在这种情况下,您不能调用另一个 Activity 的完成。只有当您在 Activity A 中并想要启动 B,然后启动 B 并完成 A 时,您的方案才有效。
【讨论】:
不要在意图中引用 ApplicationContext。给一个合理的上下文,比如LocateActivity.class,如果你不是在活动或服务中工作,当你构建这个类时,从活动中传递上下文 我正在从应用程序级别工作,所以我现在通过当前活动。感谢您的帮助!以上是关于Android,通过Handler.post函数调用finish()的主要内容,如果未能解决你的问题,请参考以下文章