私はAndroidアプリを最適化しようとしており、onStart
メソッドで登録したすべての受信者をonStart
メソッド内で開始されたスレッドに転送することに決めました。コードは次のとおりです。Android:非UIスレッドで受信者を動的に登録する
@Override
public void onStart() {
Timber.e("onStart");
super.onStart();
Thread thread = new Thread() {
@Override
public void run() {
super.run();
LocalBroadcastManager.getInstance(getApplicationContext()).registerReceiver(locationReceiver,
new IntentFilter(Constants.MAIN_ACTIVITY_LOCATION));
}
};
thread.start();
}
受信者をこのように登録できますか?
これまでのところ、動作しているように見えますが、それが運が良かったのか、それとも常に動作することが保証されているのかは不明です。
この「最適化」を行う必要がありますか?レシーバ登録によるパフォーマンスへの影響はありますか? –
私はTraceviewを見て、すべてをスレッドにプッシュすると、読み込み時間がかなり減少しました。私は今それをもう一度チェックします。 – Simon
上記のように、これは悪い考えであるかもしれません。なぜなら、あなたはシステムに新しいスレッドを産み出すことに負担がかかるからだと思います。 – Shaishav