3

アクティビティを起動する前に、ランチャーから実行したときに Android アプリケーションにコードを実行させようとしています。Sub Mainつまり、最初にアクティビティに入るのではなく、アプリを a で開始したいということです。

基本的に、擬似的に、私は次のようなことをしたい:

void main() {
    doSomeInitializationStuff();

    startActivity(myFirstActivity);
}

この質問によると、Android には文字通りこの概念がないようです。そのため、エントリ ポイントとして非表示のアクティビティを作成することを検討していましたが、アクティビティを非表示にする方法がわかりません。これらの 2 つの方法を試してみましたが、検索で出てくるのはこれらだけのようですが、実際には何もしていないようです...

this.setVisible(false); this.setTheme(android.R.style.Theme_Translucent_NoTitleBar);

4

3 に答える 3

1

非表示のアクティビティを作成する代わりに、スプラッシュ アクティビティを作成して、そこですべての初期化を開始できます。

私はこれを試していませんが、アプリケーション クラスを拡張し、アプリケーション クラスで onCreate を使用して必要なものを初期化できます。

アプリケーション クラスの onCreate の JavaDoc は次のとおりです。

/**
 * Called when the application is starting, before any other application
 * objects have been created.  Implementations should be as quick as
 * possible (for example using lazy initialization of state) since the time
 * spent in this function directly impacts the performance of starting the
 * first activity, service, or receiver in a process.
 * If you override this method, be sure to call super.onCreate().
 */
public void onCreate() {
}

Android マニフェスト ファイルの タグで android:name パラメータを使用して、カスタム アプリケーション クラスを使用していることをアプリに知らせる必要があります。

于 2011-03-01T07:45:44.037 に答える
0

ほとんどの Android アプリケーションには、その画面を使用してそのような動作を実現できる SplashScreen の概念があり、この SplashScreen の本当のモチーフは、アプリ自体とそれに関連するさまざまなことを宣伝しながら、バックグラウンドでそのようなタスクを処理することです。

于 2011-03-01T06:52:21.670 に答える
0

1 つのオプションは、非表示のアクティビティではなく、SplashScreen を使用することです。これには、ユーザーがアプリの起動時に何かが起こっていることを既に確認しているため、機能していないという印象を受けないという利点があります。例については、このクラスなどを参照してください。doSomeInitStuff() を 54 行目あたりに配置します。

onCreate()それ以外の場合は、最初のアクティビティのレイアウトをロードしてからそこから転送することはできません。

于 2011-03-01T06:54:37.497 に答える