アンドロイドでメモリリークを防止しようとしています。私はいくつかのレガシーコードを継承し、それに開発者は、このような匿名の内部クラスとしてasyncTaskを作成している:私はデモできるようアンドロイド匿名asyncTask - メモリリークの原因になります
void startAsyncTask() {
new AsyncTask<Void, Void, Void>() {
@Override protected Void doInBackground(Void... params) {
while(true);//loop to keep thread alive forever.
}
}.execute();
}
だから、僕は永遠に生きているスレッドの子供を保つために、この例では、ループを使用しています私のポイント。 私はstartAsyncTask()
を呼び出すとアクティビティからメモリリークがありますか?クラスにはアクティビティ参照はありませんが、匿名クラスは実際には非静的な内部クラスであることに気付き、外部クラスへの参照を保持しています。それ自体がメモリリークであることは事実ですか?
サービスを呼び出して、非同期タスクまたはスレッド – Kayra