首页 > 解决方案 > 在线程中如何返回上一个活动

问题描述

基本上,我从 MainActivity 开始了一个名为 GameManagerAct 的新活动。在 GameManagerAct 中,我将我的内容视图设置为 GameManager,它只是一个包含线程的类。因为它有一个线程,所以它卡在我的 GameManager 对象中。当我到达 GameManager 对象中想要返回到上一个活动 (MainActivity) 的点时,我将如何执行此操作?由于它只是一个类而不是 Activity,因此它无法访问 GameManagerAct 的 finish() 命令。

我尝试将代码从 GameManager 对象移动到 GameManagerAct 中,但这不起作用。

// 在 MainActivity.java

startActivity(new Intent(MainActivity.this, GameManagerAct.class));

// 在 GameManagerAct.java 中

GameManager gm = new GameManager(this);
setContentView(gm);

// 在 GameManager.java 中

else if (quitRect.contains(movePointX, movePointY)) {
    // ends GameManagerAct activity and returns back the MainActivity
}

我希望 setContentView 返回到 MainActivity 的那个。目前,没有任何反应,因为我不知道该怎么做。

标签: javaandroidandroid-activity

解决方案


您应该创建接口以从您的 GameManager 类访问您的视图(活动),并且当您的工作完成时,它会调用您的接口方法,在该接口方法中您可以完成活动。或者你也可以使用可观察的设计模式。

interface GameInterface{
 void workDone();
}

在你的活动中实现这个

GameManagerAct implement GameInterface{

并像这样覆盖它:

void workDone(){
this.finish();
}

将它传递给 GameManager 类。并在完成工作时使用该方法。

interfaceObject.workDone();

推荐阅读