0

我有两个活动。第一个活动是带有暂停按钮的游戏屏幕,第二个活动是带有恢复和重新启动按钮的游戏。当我在游戏屏幕上单击暂停按钮时,我会从单击重新启动按钮的位置转到第二个活动,然后我想先完成活动(游戏屏幕)并想开始新游戏所以这是我的问题如何完成第一个活动请帮助我

4

3 回答 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 回答