去上一次活动

时间:2012-02-12 18:35:53

标签: android android-activity

我有RoomActivity和GameActivity。 RoomActivity监听服务器命令。服务器可以发送2个命令:openGameActivity和closeGameActivity。 此命令必须仅在RoomActivity中运行。第一个命令我这样做(RoomActivity类):

if(request == "open")
{
    Intent i = new Intent(this, GameActivity.class);
    startActivity(i);
}

但我对第二个命令有问题。

if(request == "close")
{
    //What I must do here to return back to RoomActivity?
}

结构: http://i.stack.imgur.com/asE6S.png

UPD 关于完成(); 我不能使用它,因为它是静态方法: RoomActivity:

GameActivity.finishAct();

GameActivity:

public static void finishAct()
{

    //this.onBackPressed();
    finish();//<====Cannot make a static reference to the non-static method finish() from the type Activity

}

4 个答案:

答案 0 :(得分:1)

通过致电:

结束您的Activity
finish();

答案 1 :(得分:0)

致电finish

答案 2 :(得分:0)

您可能会查看代码以将finishAct设置为非静态。声明和使用这样的方法没有意义。它也不像活动打算实施

答案 3 :(得分:0)

由于您没有提供任何代码,因此不确定如何实现这些“命令”,但如果您尚未提供,则建议您使用来自服务的BroadcastIntent。注册GameActivity以收听开放式游戏广播的近距离广播和RoomActivity。

您在活动的onResume()方法中注册BroadcastReceiver,并取消注册onPause()。

http://developer.android.com/reference/android/content/BroadcastReceiver.html

正如其他人所说,一旦GameActivity接收到近距离广播,它就可以直接调用finish()。