Android 앱에서 더 나은 성능을 위해 스레드를 사용하려고했습니다. 내가보기의 일부 설정을 변경 이러한 방법에서Android 스레딩 : 스레드에서 뷰를 참조하십시오.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.play);
...
new Thread(new Runnable() {
public void run() {
makeList();
}
}).start();
new Thread(new Runnable() {
public void run() {
setChronometer();
}
}).start();
}
다음 onCreate
방법에 나는 두 개의 스레드를 시작했다. (더 무거운 이벤트 없음)
먼저 크로노 미터 :
ListView
private void setChronometer(){
time.post(new Runnable() {
public void run() {
time.setFormat("Time: %s");
time.setBase(SystemClock.elapsedRealtime());
time.start();
}
});
}
두 번째로 다음 Chronometer
는 makeList()
에서 작업이 완료되지 않은 하지만, 잘 작동
private void makeList(){
...
final ArrayAdapter<String> listAdapter = new ArrayAdapter<String>(...);
list.post(new Runnable() {
public void run() {
list.setAdapter(listAdapter);
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
....
}
});
}
.. 그래서 내 ListView가 작동하지 않습니다!
나는 활동이 목록보기를 정의, 시작 크로노 덜 중요하다, 그래서 내가 활동이 더 빨리 시작하는 것을 목표로, 스레드를 연기 할 때
먼저 생각 (더 performat입니다)했다 이게 좋은 생각인가요?
둘째, 왜 내 ListView가 작동하지 않습니까? 내가 list.post(new Runnable() {
을 제거하면 작동하지만, 안드로이드에서 좋은 방법이 아니라고 생각했습니다. 이제 뷰가 스레드에서 지시를 변경하게됩니다.
셋째, 스레드를 사용해야 할 때 vs.View.post
?
도움이 될 것입니다. 감사합니다. FireDragon
텍스트에 백틱 (')을 사용하지 말고 (') 백틱은 마크 다운에서 특별한 의미가 있으므로 사용하지 마십시오. –