2017-09-09 27 views
0

アプリケーションの開始時に非常に特定のコードを実装する必要があります。(アクティビティではなく)アプリケーションの開始にアクセスする方法

つまり、アクティビティの開始(onCreate()またはonStart())ではなく、アプリケーションの開始時です。

"MyBaseActivity"と呼ばれる基本的なアクティビティを持っていて、それから私のすべてのアクティビティで拡張されている解決策がありました。 この解決策は私にとっては良くないことです。なぜなら、この解決策は、私が欲しいものではない、それぞれのアクティビティ(私が話した特定のコード)のonCreateで特定のことを実行できるようにするためです。

onCreate()funcに従って、また上で説明した特定のコードに加えて、すべてのアクティビティでさまざまなことができるようにしたいと思います。

そのため、私はアプリケーションの開始にアクセスする必要があります。または、私のために別の解決策が必要です。

ありがとうございました!

答えて

2

Application class、またはApplicationクラスのサブクラスは、他のクラスの前にインスタンス化されます。 アプリケーションクラスを拡張する必要があります。

public class AppApplication extends Application{ 
@Override 
    public void onCreate() { 
     super.onCreate(); 
     //Do whatever you want 
    } 
} 

このAppApplicationクラスは、マニフェストファイルに含める必要があります。

<application 
     android:allowBackup="true" 
     android:name=".AppApplication" 
     android:icon="@mipmap/ic_launcher" 
1

私は、アプリケーションの開始時に非常に特定のコードを実装する必要があります。

アンドロイドは、アプリのコンポーネント(活動サービスBroadcastReceiver)、アプリのいずれかがまだ実行されていない開始する「要求を取得」するたびに、それはapp_processをフォーク(別名zygote)の名​​前をyour.package.nameに変更し、のAndroidManifest.xmlを呼び出し、アプリケーションのインスタンスを初期化し、そのonCreate()メソッドを呼び出し、要求されたコンポーネントをインスタンス化し、そのライフサイクルル法(活動さんonCreate()サービスonCreate()BroadcastReceiveronReceive())。

Applicationクラスのインスタンスは、アプリプロセスが終了するまで存続することがあります。つまり、extended Application class内に作成したクラスインスタンスは、システムによってアプリプロセスが強制終了されるまで存続します。

例:アプリケーション/パッケージのためのプロセスが作成されたときにUnderstanding the Android Application Class

関連する問題