我有两个活动。第一个活动是带有暂停按钮的游戏屏幕,第二个活动是带有恢复和重新启动按钮的游戏。当我在游戏屏幕上单击暂停按钮时,我会从单击重新启动按钮的位置转到第二个活动,然后我想先完成活动(游戏屏幕)并想开始新游戏所以这是我的问题如何完成第一个活动请帮助我
问问题
1485 次
3 回答
3
一个建议是您在所有活动中注册一个广播接收器,在他们的 onReceive() 中使用“finish()” & 每当你想退出时,你可以简单地传递一个指示所有活动必须关闭的意图.....虽然确保您在 onDestroy() 方法中“取消注册”接收器。
像这样的东西
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter filter = new IntentFilter();
filter.addAction("end");
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
finish();
}
};
registerReceiver(receiver, filter);
}
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
unregisterReceiver(receiver);
}
当您希望从另一项活动中完成此操作时,只需执行此操作
Intent i = new Intent("end");
sendBroadcast(i);
于 2013-03-14T09:04:03.403 回答
1
这将杀死所有顶级活动并开始新的活动 NewGame。
Intent intent = new Intent(getApplicationContext(), NewGame.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
于 2013-03-14T09:01:07.500 回答
1
选项 1: 使用片段
选项 2:
从第一个活动开始使用startActivityForResult
,然后在第二个活动完成时使用onActivityResult
。完成第一个活动然后开始游戏。
选项 3: 发送广播消息并在第一个活动中接收并完成它。
可能还有其他选择。只需放下一些立即出现在我脑海中的选项。如果我是你,我会使用选项 1
于 2013-03-14T09:02:56.240 回答