asyncTask와 함께 루퍼를 어떻게 사용할 수 있습니까?asyncTask와 함께 루퍼를 어떻게 사용할 수 있습니까?
프로그래밍 방식으로 MyResultTable이라는 TableLayout을 만들려면 doImBackground 메서드가 호출됩니다. MyResultTable에는 MotionEvent.ACTION_MOVE
동안 onTouch에서 호출하는 처리기가 있습니다.
asynchTask 내부에서 핸들을 사용하는 것에 대한 불만 사항을 얻은 후에 UIThread에서 핸들러를 실행하기로 결정했습니다. 그러나 그것이 저의 onTouch 메소드가 느린 반응을 일으키는 원인이됩니다. 그래서 내 질문은, 어떻게 내가 asyncTask와 함께 루퍼를 사용합니까?
UIThread 코드 :
activity.runOnUiThread(new Runnable() {
public void run() {
handler.post(mResizeViews);
}
});
내 루퍼 시도 : (작동하지 : 빈 화면)
protected MyResultTable doInBackground(Void... params) {
Looper.prepare();
MyResultTable table = new MyResultTable(context, other);
Looper.loop();
return tabl;
}
정말인가요? 네가 보통 좋은 대답을 가지고 있다는 것을 나는 안다. 그러나 나는 항상 백그라운드에서 테이블을 모은 다음'onPostExecute'를 사용하여 커스텀 테이블을 가지고있는 linearLayout에 커스텀 테이블을 전달한다. 그렇지 않으면 안드로이드는 UI가 너무 많이 작동한다고 말하는 경향이 있습니다. –
@CoteMounyo : "안드로이드는 UI가 너무 많이 사용된다고 말하는 경향이 있습니다"- Traceview와 같은 도구를 사용하여 성능 문제의 진정한 이유를 찾습니다. – CommonsWare
확인. 그래서 나는 당신의 제안을 시도한다. 그리고 그것은 작동합니다 (+1). UI가 열심히 일하는 것에 대한 Android의 불만은 없습니다. 하지만 내 슬라이더는 여전히 부드럽지 않습니다. 이동을 시작한 다음 사용자가 손가락을 어디로 옮겼는지 이동하는 데 시간이 걸립니다. 참조 http://stackoverflow.com/questions/17958671/increase-sensitivity-to-user-touch –