내 안드로이드 앱을 최적화하려고하는데 onStart
메서드에 등록한 모든 수신기를 onStart
메서드 내에서 시작되는 스레드로 대신 전송하기로 결정했습니다. 코드는 다음과 같습니다.Android : 동적으로 비 사용자 인터페이스 스레드에서 수신기 등록
@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