2014-07-12 4 views
0

음악 신청서를 온라인으로 작성하고 있습니다.하지만 문제가 발생했습니다 ... 목록보기에서 항목을 선택하면 새로운 활동이 천천히 시작됩니다 ... 잘 모르겠습니다. 도와주세요 ! :( 죄송합니다 나는 아주 나쁜 영어를 해요 :(시작 활동이 느림

이 내 코드입니다.

public class startNewActivity extends AsyncTask<String, Void, String> { 
    private Activity activity; 
    private String selectDoc = "div.gen img"; 
    private String attr = "title"; 
    private String result; 
    public String Quality; 

    public startNewActivity(Activity activity) { 
     this.activity = activity; 
    } 

    @Override 
    protected String doInBackground(String... arg0) { 
     nameSong = (String) lvSong.getItemAtPosition(positionId); 
     link = linkSong.get(Integer.valueOf(obj.toString())); 

     Quality = Utils.getQuality(link, selectDoc, attr, result); 
     Log.i("Quality", Quality); 
     changeLink = link.replace(".html", "_download.html").substring(15) 
       .replaceFirst("", "http://download") 
       .replace("nhac-hot", "mp3".concat("/vietnam/v-pop")); 
     Log.i("Change link", changeLink); 
     try { 
      //Connect internet 
      linkIntent = Utils.getLinkPlay(selectLinkPlay, changeLink, 
        afterChangeLink); 
     } catch (Exception e) { 
      Toast.makeText(getApplicationContext(), 
        "Server has problem... Please while for minutes", 
        Toast.LENGTH_SHORT).show(); 
     } 
     return linkIntent; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
    //i'm want help here 
     Intent i = new Intent(SongActivity.this, PlayMusicActivity.class); 
     i.putExtra("song", linkIntent); 
     i.putExtra("namesong", nameSong); 
     i.putExtra("Quality", Quality); 
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     activity.startActivity(i); 
     pDialog.dismiss(); 
     super.onPostExecute(result); 
    } 

    @Override 
    protected void onPreExecute() { 
     pDialog = ProgressDialog.show(SongActivity.this, "", 
       "Please wait..."); 
    } 
} 
+0

사용 Traceview이 어디 팀을 결정하기 위해 e는 소비되고있다. – CommonsWare

+0

무슨 코드 hv u writeen onClick? plz 게시물 그 – KOTIOS

+0

@ CommonSWare 나는 초보자이다 :(.하지만 약 3-4s를 클릭하면 활동 시작 –

답변

2

당신은 doInBackground()을 완료 한 후에 만 ​​실행 onPostExecute() 내부의 새로운 활동을 시작하고 따라서. , 시간 지연. 이상적으로

, 당신은 당신이 당신의 AsyncTask를 실행 직후 활동을 시작해야합니다. 활동의 변화 동안 AsyncTask를 백그라운드에서 계속됩니다.

+0

먼저 ... 나는 당신이 내 질문에 대답 tks이야 ... 내 코드를 편집 할거야 –

+0

그래, 그랬어 작동합니까? –

+0

지금 PlayMusicActivity를 시작하고 Play 전에 처리합니다. –

관련 문제