2013-04-19 2 views
2

Я сделал приложение для радио потокового здесь код:Показать ProgressDialog для службы радиопотока?

 public class streamService extends Service { 

public static MediaPlayer stream; 
public static String url; 
public static int serviceAvailable; 
private static final int HELLO_ID = 1; 
public static NotificationManager mNotificationManager; 
public static PowerManager.WakeLock wl; 
public static Boolean bgPlay = false; 
TelephonyManager tm; 

ProgressDialog pDialog; 

public static String Tag=""; 

@Override 
public IBinder onBind(Intent arg0) { 
    return null; 
} 

@Override 
public void onCreate() { 
    super.onCreate(); 
    pDialog=new ProgressDialog(RadioList.con); 
    pDialog.setTitle("Please wait!!"); 
    pDialog.setMessage("Connecting"); 
    pDialog.setCancelable(false); 
    pDialog.show(); 

} 

public void onStart(Intent intent, int startid) { 
    // Restore preferences 

    Tag=RadioList.Tag; 
    //RadioStationThree.pDialog.show(); 
    stream = new MediaPlayer(); 

    try { 
     stream.setDataSource(RadioList.URL); 
    } catch (IllegalArgumentException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 

    } catch (IllegalStateException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 

    } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 

    } 
    stream.setAudioStreamType(AudioManager.STREAM_MUSIC); 

    stream.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 

     public void onPrepared(MediaPlayer stream) { 


     /* tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); 
      tm.listen(mPhoneListener, PhoneStateListener.LISTEN_CALL_STATE); 

      makeNotification(); 
     */ // Set the Wake Lock - CPU on, keyboard and screen off 
      /*PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
      wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, 
        getString(R.string.app_name)); 
      wl.acquire();*/ 
      serviceAvailable = 1; 

      System.out.println("HERE CANCEL"); 
      pDialog.cancel(); 

      stream.start(); 


     } 
    }); 
    try { 
     stream.prepare(); 
    } catch (IllegalStateException e1) { 
     e1.printStackTrace(); 

    } catch (IOException e1) { 
     e1.printStackTrace(); 

    } 
} 

@Override 
public void onDestroy() { 
    // kill the stream 
    serviceAvailable = 0; 
    stream.stop(); 
    stream.release(); 
    stream = null; 
    // kill the status notification 
} 

Эта служба запускается при щелчке кнопки в деятельности Но, как я нажимаю на кнопку приложение перестает работать на некоторое время, а затем продолжить normal (Иногда также показан ANR). Я также использовал ProgressDialog, но он также прекратил вращение и показан ANR. Каким может быть возможное решение для этого? Пожалуйста помоги?

+1

Не делайте тяжелую задачу непосредственно в основной теме. использовать отдельную тему – stinepike

+0

Я новичок в обсуждениях, может помочь мне с примером кода – Navdroid

ответ

0

Благодаря «StinePike» Это было просто, используя код в новой ветке, он работал отлично!

Смежные вопросы