모바일 앱의 성능을 개선하려고합니다. AsyncTask를 사용하려고합니다. AsyncTask에 대한 많은 문서를 살펴 보았습니다. 여기에 수많은 질문이 있지만 올바르게 실행하려면 코드를 가져올 수 없습니다.AsyncTask에서 setAdapter를 어디에서?
나는 어댑터가 onPostExecute 방법에 설정 한 예를 본 적이 있지만 그것은 onPreExecute
에 MainActivity에 RecycleView
을하지 정의 .. 나를 위해 작동
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_travel_updates);
Twitter.initialize(this);
new getTweets().execute();
}
private class getTweets extends AsyncTask<Void, Void, Void>{
@Override
protected void onPreExecute() {
super.onPreExecute();
final RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(travel_updates.this));
}
@Override
protected Void doInBackground(Void... params) {
final UserTimeline searchTimeline = new UserTimeline.Builder().screenName("TflTravelAlerts")
.maxItemsPerRequest(5)
.build();
final TweetTimelineRecyclerViewAdapter tweetAdapter =
new TweetTimelineRecyclerViewAdapter.Builder(travel_updates.this)
.setTimeline(searchTimeline)
.setViewStyle(R.style.tw__TweetLightWithActionsStyle)
.build();
return null;
}
@Override
protected void onPostExecute(Void Void) {
recyclerView.setAdapter(tweetAdapter);
}
}
}
감사
* "하지만 저에게는 효과가 없습니다 .."* 우리가 당신을 도울 수 있도록 조금 더 설명 할 수 있습니까? – codeMagic
예! 내 애매한 묘사에 사과! 받은 오류가 "recyclerView '기호를 확인할 수 없습니다." –
다른 방법으로 선언되었습니다. 이 클래스가 모두 하나의 클래스라고 가정하면'onCreate()'에 선언하고 초기화 한 다음 지금 어댑터를 설정합니다. – codeMagic