Java 如果I';我正在进行表面观察

Java 如果I';我正在进行表面观察,java,android,Java,Android,我有两项活动。My MainActivity有一个带有OnClickListener的按钮,该按钮使用启动第二个活动 startActivity(new Intent(MainActivity.this,Second.class)); 在第二个活动中,我设置了一些SurfaceView: setContentView(new SecondView(this)); 从SecondView类中,我调用其他类并执行一些任务。在某个用户输入后,我想退出/销毁第二个活动并返回主活动。我试过这个(发现它

我有两项活动。My MainActivity有一个带有OnClickListener的按钮,该按钮使用启动第二个活动

startActivity(new Intent(MainActivity.this,Second.class));
在第二个活动中,我设置了一些SurfaceView:

setContentView(new SecondView(this));
从SecondView类中,我调用其他类并执行一些任务。在某个用户输入后,我想退出/销毁第二个活动并返回主活动。我试过这个(发现它是对某人问题的回答):

但它不工作->应用程序已停止

我的问题是:在这种情况下如何停止/退出活动?或者我应该以其他方式来处理这个问题

问候,为乐趣而编码

(和以前一样,如果我自己找到解决方案,我会将其粘贴到此处,以便其他人可以使用。)

已编辑

好的,这是我在LogCat中的内容(不知道您需要什么):


现在我的应用程序返回到MainActivity,但只是冻结在那里。

您的方法是错误的,您创建了一个新类并调用
finish
。但是这个类与Android中的任何活动都不相关,因此应用程序将崩溃

要修复它,应该使用创建时传递给它的实例

setContentView(new SecondView(this));
您应该编辑
SecondView
类以保存它

所以创建一个字段

private Activity activity;
在你的构造器中

activity = (Activity)context;
然后,当您想要销毁活动时

activity.finish();

无论如何,如果您创建SecondActivity实例,那么您的方法是错误的,因为它与Android中的任何活动都不相关,所以完成它是没有意义的。要从SecondView完成活动,请使用创建视图时传递给它的实例,并调用finish on它感谢您的快速响应Marco。我很抱歉,但事实证明这并不是我的应用程序崩溃的原因(我刚刚开始了我的android冒险,所以我还不太明白)。我有一个扩展线程的类(为我做一些图形),因此我无法完成我的活动。我会试着自己解决这个问题一段时间,如果我没有成功,我会发布另一个问题。再次使用thx。这个答案是否帮助您解决了问题?无论如何,如果你发布日志,我们可以帮助你。你的问题可能是因为你试图从另一个线程更新UI。你的回答在某种程度上是有用的(学到了一些新东西),但我的应用程序仍然无法工作。我编辑了我的问题,按照你的要求添加了LogCat结果。我已经设法解决了我的问题。这与我的问题无关(很抱歉),所以我不会将其粘贴到这里。再次感谢你的帮助,马可,你的回答对这个问题很有帮助。
activity = (Activity)context;
activity.finish();