Android,通过Handler.post函数调用finish()
Android, call finish() through Handler.post function
我有 Activity A 和 B
现在我有一些 "event" 在另一个线程中处理。
如果被触发,应用程序应该启动 B,然后销毁 A。
在线程中我有一个处理程序 post 东西到 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();
}
});
这不起作用,因为我的 class 无法转换为 android.app.Activity
我如何让它发挥作用?
只需finish()即可,无需强制转换。你不能调用另一个 Activity 的完成,在那个 situation.Your 场景中只有当你在 Activity A 中并且想要开始 B,然后开始 B 并完成 A.
我有 Activity A 和 B 现在我有一些 "event" 在另一个线程中处理。 如果被触发,应用程序应该启动 B,然后销毁 A。
在线程中我有一个处理程序 post 东西到 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();
}
});
这不起作用,因为我的 class 无法转换为 android.app.Activity 我如何让它发挥作用?
只需finish()即可,无需强制转换。你不能调用另一个 Activity 的完成,在那个 situation.Your 场景中只有当你在 Activity A 中并且想要开始 B,然后开始 B 并完成 A.