我有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?
}
结构:
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
}
答案 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()。