同じ アプリケーションにアクティビティ A、アクティビティ B、および静的クラスがあります。シナリオは次のとおりです (ここでは簡略化しています。私のソフトウェアではより理にかなっています)。
- (アクティビティ A) mAppctx = this.getApplicationContext();
- (アクティビティ A) StaticClass.appctx = mAppctx;
- アクティビティ B が生成されます
- アクティビティ B の実行中にアクティビティ A がシステムによって破棄されたとします。
- アクティビティ B は次のことを行います (疑似コード): ..... = StaticClass.appctx.getResources().openRawResource(...);
これは正しいです?
アプリケーションContext は Application (つまり、プロセス) に属し、 Activity に属していないため、正しいと思います。この方法で、静的クラスから問題なく APK リソースにアクセスできます。(アクティビティ B が実際に自分で getApplicationContext() を要求できることはわかっていますが、上記の質問は意図的に異なります。)