0

Androidアプリケーションを作成します。アプリケーションには多くのアクティビティがあり、アクティビティ間の遷移が多数あります。私は自分の活動を切り替えるステートマシンを実現することにしました。

Applicationクラスまたはそのサブクラスでステートマシンを実現したかったのですが、そこからアクティビティを開始できません。

public class MainAppClass extends Application {}

このようなコードは失敗しています:

Intent intent = new Intent();
intent.setClass(this.MyActivity, Screen2Activity.class);
StartActivity(intent);

多分、それは非現実的ですか?そのようなタスクのための他の方法はありますか?あなたの答えをありがとう!

4

1 に答える 1

2

別の質問があります:のサブクラスからアクティビティを開始しようとしているのはなぜApplicationですか?

これを (ドキュメントから) 読むと、あなたがやろうとしていることが意味を成さない理由がわかります。

このApplicationクラスは、グローバルなアプリケーションの状態を維持する必要がある人のための基本クラスです。通常、Application をサブクラス化する必要はありません。ほとんどの場合、静的シングルトンは、よりモジュール化された方法で同じ機能を提供できます。シングルトンにグローバル コンテキストが必要な場合 (たとえば、ブロードキャスト レシーバーを登録するため)、シングルトンを最初に構築するときContextに内部的に使用する を取得する関数を指定できます。Context.getApplicationContext()

元の投稿を編集して、なぜこれをやろうとしているのかを明確にしていただければ、Screen2Activity.

于 2012-06-07T18:26:02.980 に答える