2011-04-29 48 views
1

任何人都可以通過簡單的方式給出解釋android線程的示例程序。例如,我想在發佈時在線程中列出sd卡中的歌曲如何在android中執行線程操作

我正在使用以下代碼來獲取android設備的SD卡中的歌曲數。由此我想列出的歌曲螺紋

private void init_phone_sd_card() 
    { 
     System.gc(); 
     final String[] proj = { MediaStore.Audio.Media._ID,MediaStore.Audio.Media.DATA,MediaStore.Audio.Media.DISPLAY_NAME,MediaStore.Audio.Media.SIZE }; 
     Log.e("media",""+proj); 

     musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,proj, null, null, null); 
     Log.e("media1",""+musiccursor); 

     count = musiccursor.getCount(); 
     Log.e("media2",""+count); 

如何做到這一點......

THX

回答

1

只要把你的代碼的AsyncTask的doInBackground()方法。任務還應該顯示ProgressDialog以告訴用戶正在運行一些有用的工作。文章見this

1

如果你問一個簡單的線程操作,this will help你..

或者你可能想使用異步類類似下面,

class AddStringTask extends AsyncTask<Void, String, Void> { 
    @Override 
    protected Void doInBackground(Void... unused) { 
     for (String item : items) { 
      publishProgress(item); 
      SystemClock.sleep(1000); 
     } 

     return(null); 
    } 

    @Override 
    protected void onProgressUpdate(String... item) { 
     ((ArrayAdapter)getListAdapter()).add(item[0]); 
    } 

    @Override 
    protected void onPostExecute(Void unused) { 
     Toast 
      .makeText(Async.this, 
        "Done", 
        Toast.LENGTH_SHORT) 
      .show(); 
    } 
}