Androidのアプリケーション対象説明
2621 ワード
AndroidのApplicationはActivityやServiceと同様にAndroidフレームワークの構成部分です.このアプリケーションは通常、appが起動すると自動的に作成されます.Applicationはappで単一のモードであり、Applicationもapp全体のライフサイクルが最も長いオブジェクトです.すべてのActivityとServiceは1つのApplicationを共有しているので、Applicationは通常、データ、データ転送、データキャッシュを共有するために使用されます.
インターネットでいくつかの資料を調べて、Applicationの使用にいくつかの補充をしました.
1.2つのActivityがビッグデータを転送する場合は、Intent転送ではなく、ApplicationでHashMapを作成し、送信側ActivityがApplicationのHashMapにデータを入れ、データのインデックスをIntentを介して受信側Activityに転送します.受信側Activityでは、アプリケーションから送信側に渡されたデータを取得できます.
2.インターネットからダウンロードしたデータは、一時的にApplicationのHashMapに入れることができ、appが再びデータを要求したときにApplicationにデータが入っていることに気づいたら、再びネットからダウンロードする必要はありません.
3.appのメモリには制限があるので、キャッシュされたデータが多すぎる場合は、ローカルのromまたはsdcardにキャッシュデータを書き込む必要があります.、
4.アプリケーションは静的なので、アプリケーションの参照に最後に配置しないオブジェクトやデータがあります.アプリケーションのライフサイクルが長いため、アプリケーションにActivityのコントロールが参照されている場合、Activityがfinishを希望している場合、メモリが解放されず、メモリが漏洩します.
Java SEの開発の際、あるクラスを複数のクラスで共有したい場合は、そのクラスを静的共有オブジェクトに設定すればよい.Android開発では、個人的にはAndroidの開発規範に従うには、共有したデータを自分の書いたApplicationに置くべきだと考えています.他のクラスはappのApplicationを取得することで共有データを取得できます.自分のアプリケーションクラスを書く場合は、アプリケーションクラスを継承する必要があります.
Activityが共有データにアクセスする必要がある場合、getApplicationContext()メソッドでappのApplicationを取得し、強制タイプをMyApplicatonオブジェクトに変換することで共有データを取得できます.
完成したらAndroidManifestでxmlファイルをいくつか修正して、私たちのappを教えて、私たちのApplicationはMyApplicationを使いました.
インターネットでいくつかの資料を調べて、Applicationの使用にいくつかの補充をしました.
1.2つのActivityがビッグデータを転送する場合は、Intent転送ではなく、ApplicationでHashMapを作成し、送信側ActivityがApplicationのHashMapにデータを入れ、データのインデックスをIntentを介して受信側Activityに転送します.受信側Activityでは、アプリケーションから送信側に渡されたデータを取得できます.
2.インターネットからダウンロードしたデータは、一時的にApplicationのHashMapに入れることができ、appが再びデータを要求したときにApplicationにデータが入っていることに気づいたら、再びネットからダウンロードする必要はありません.
3.appのメモリには制限があるので、キャッシュされたデータが多すぎる場合は、ローカルのromまたはsdcardにキャッシュデータを書き込む必要があります.、
4.アプリケーションは静的なので、アプリケーションの参照に最後に配置しないオブジェクトやデータがあります.アプリケーションのライフサイクルが長いため、アプリケーションにActivityのコントロールが参照されている場合、Activityがfinishを希望している場合、メモリが解放されず、メモリが漏洩します.
Java SEの開発の際、あるクラスを複数のクラスで共有したい場合は、そのクラスを静的共有オブジェクトに設定すればよい.Android開発では、個人的にはAndroidの開発規範に従うには、共有したデータを自分の書いたApplicationに置くべきだと考えています.他のクラスはappのApplicationを取得することで共有データを取得できます.自分のアプリケーションクラスを書く場合は、アプリケーションクラスを継承する必要があります.
public class MyApplication extends Application {
//
private int shareData;
@Override
public void onCreate() {
shareData = 100;
super.onCreate();
}
//
public int getShareData() {
return shareData;
}
}
Activityが共有データにアクセスする必要がある場合、getApplicationContext()メソッドでappのApplicationを取得し、強制タイプをMyApplicatonオブジェクトに変換することで共有データを取得できます.
public class MyActivity extends Activity {
private MyApplication application;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
application = (MyApplication) this.getApplicationContext();
System.out.println(" " + application.getShareData());
setContentView(R.layout.main); // XML
}
}
完成したらAndroidManifestでxmlファイルをいくつか修正して、私たちのappを教えて、私たちのApplicationはMyApplicationを使いました.
<application
android:name="com.shamoo.testapplication.MyApplication"
android:label="@string/app_name"
android:icon="@drawable/icon" >
<activity
android:name=".MyActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>