Androidのアプリケーション参照方法
<スパン Androidの開発では、通常、APPにApplicationを配置し、LibモジュールがApplicationを参照したい場合は、APPに渡して、Libモジュールにスタティック変数で保存する必要があります。しかし、この方法は、Android Studioのプロンプト[Do not place Android context classes in static fields; this is a memory leak]からもわかるように、Androidから推奨されるべきではありません。静的変数は開発における万能薬ではなく、特に静的変数が再利用されてプログラムがクラッシュする可能性があるすべてのシナリオにおいて、静的変数が空にならないようにするという単純な目的で、このデータをシリアライズ/デシリアライズする取り組みが多く行われています。
<スパン これを別の方法で考えてみよう。実際、Libモジュールはアプリケーションを取得したいだけで、それ自体を保存する必要はなく、参照さえできれば、問題はずっとシンプルになります。
これを実現するための方法を2つ紹介します。
<スパン 1. 基本ライブラリ+アプリケーション基本クラス
上の図から、私たちのAPPモジュールアーキテクチャは、[ベースライブラリ]を導入していることがわかります、このベースライブラリは、多くのことを行う、その一つは、アプリケーションのベースクラスであり、すべてのモジュールは、ベースライブラリを提供し、すべてのモジュールがベースライブラリ内のアプリケーションのベースクラスを参照することができます。
2. リフレクションを使ってアプリケーションを取得する
リフレクションによってActivityThreadクラスのApplication変数を取得するシンプルなコードで、十分にウィットに富んでいます。
メソッドを呼び出します。 OkApplication . 得る ()
上記2つの方法、1つ目は条件が許す限り推奨、2つ目の反映はAndroidのバージョンによって異なる場合があります。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例