我已經實現了從web下載數據,然後在兩個ActionBar.Tab
s中顯示它的應用程序。我有一個問題。如果我從一個選項卡切換到另一個選項卡,應用程序將開始另一次下載,而下載未完成時,應用程序將凍結。如果互聯網連接速度慢,它變得非常煩人。我決定將ProgressDialog
添加到應用程序以向用戶顯示應用程序正在從網站下載數據。我添加了一段執行ProgressDialog
到AsyncTask
的代碼,該代碼執行下載,但這並沒有幫助。我明白爲什麼出現這種情況,但無法找到怎樣的方式來解決它:(將被安裝到標籤被表示爲Fragment
類的實例在ActionBar.Tabs問題之間切換
數據,創建後,該實例將被添加到transaction
,只有經過加入mFragment
對象transaction
,應用切換到另一個標籤
這是tabListener
代碼部分:
// ...
@Override
public void onTabSelected(Tab tab, FragmentTransaction transaction) {
if (mFragment == null) {
/*
* Creation of ParkFragment is the reason why app locks!! Because in
* ParkFragment data is being downloaded from web
*/
mFragment = new ParkFragment(mUrl, mActivity);
/*
* mFragment can't be added to transaction until downloading is
* finished, that's why app doesn't switch fast
*/
transaction.add(android.R.id.content, mFragment, mTag);
} else {
transaction.attach(mFragment);
}
}
請,如果任何人有任何想法如何實現ProgressDialog
,以避免在翼片之間的切換的延遲,與它分享。
謝謝您的閱讀。
更新:我已閱讀這個問題的答案,但不明白如何實施將幫助我管理延遲:Changing Tabs is Slow/Laggy - Using Fragments。
UPD:
public class ParkFragment extends ListFragment {
private ArrayList<Cinemas> cinema;
private CinemasAdapter cinemaAdapter;
private String url;
private Activity activity;
public ParkFragment (String cinema,Activity activ){
url = cinema;
activity = activ;
}
public void onCreate(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
cinema = new Handler().handle(url,activity);
cinemaAdapter = new CinemasAdapter(activity, R.layout.movie_data_row, cinema);
setListAdapter(cinemaAdapter);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
Cinemas movie = cinemaAdapter.getItem(position);
Intent intent = new Intent (activity, More.class);
intent.putExtra("Cinemas", movie);
intent.putExtra("data", movie.getBitmap());
Bundle translateBundle =
ActivityOptions.makeCustomAnimation(activity,
R.anim.slide_in_left, R.anim.slide_out_left).toBundle();
startActivity (intent, translateBundle);
}
}
謝謝你的回答!我已經添加了「ParkFragment」的代碼。我沒有在我的應用程序中使用數據庫..有沒有其他方法可以解決這個問題? – 2013-03-23 14:08:39
@AvanJogia謝謝,我更新了答案。 – 2013-03-23 14:24:31