1

私はちょうどコードを見ました:

public class MyApplication extends Application {

        private List<Activity> activityList = new LinkedList<Activity>();
        private static MyApplication instance;

        private MyApplication() {
        }

        public static MyApplication getInstance() {
                if (null == instance) {
                        instance = new MyApplication();
                }
                return instance;

        }


        public void addActivity(Activity activity) {
                activityList.add(activity);
        }


        public void exit() {

                for (Activity activity : activityList) {
                        activity.finish();
                }

                System.exit(0);

        }

}

現在の活動以外の活動をコントロールできるとは思いもしませんでした。私は通常、独自のアクティビティ内で finish() を呼び出しますが、このコードを見て、他のアクティビティも終了できることに気付きました。

Android スタックはバックスタック アーキテクチャなので、途中でアクティビティを破棄するとどうなりますか? たとえば、バック スタックに 5 つのアクティビティがあり、3 番目のアクティビティを終了するとします。2 番目と 4 番目のアクティビティはリンクされますか?

4

1 に答える 1

1

Android は開始されるアクティビティのスタックを維持するため、最初に開始されたアプリケーションはスタックの一番下に移動し、2 番目のアプリケーションはその上に移動し、以降はそれ以降になります。

したがって、3 番目のアクティビティを削除すると、コードから正しく理解できるように、4 番目のアクティビティが 2 番目のアクティビティの上に来るため、それらはリンクされます。

于 2012-10-22T02:59:47.100 に答える