Вопросы по теме Android - PullRequest
1 голос
/ 12 января 2012

Я создаю приложение для Android, где я в основном реализую музыкальный проигрыватель от поставщика веб-контента. Короче говоря, у меня есть игрок с «play», «pause», «stop». В то же время я использую новый поток для предоставления информации о прогрессе в строке поиска, а также textView с продолжительностью и временем воспроизведения.

Я бы хотел спросить вашего совета о лучшем подходе к поточности. Я хотел бы приостановить нить, когда нажата пауза, остановить ее, когда нажата остановка, и возобновить / запустить ее, когда нажата игра.

У меня есть что-то вроде этого:

Thread thread = new Thread(new Runnable()
{
    public void run() 
    {
        while(!finished && !stopped)
        {//Do some action on Views...}}

И даже в этом случае поток будет полностью мертвым, когда я покину свое приложение? Разве это не будет все еще работать?

Большое спасибо, и извините, если на этот вопрос ответили в другом месте.

Ответы [ 2 ]

2 голосов
/ 12 января 2012

Я использую Handler + Broadcast в моем mediaPlayerDemo.MediaPlayer работает в Service и использует handler.post (runnable) для создания круга.В Runnable I sendBroadcast () и измените textView, когда onReceive в моей деятельности

public void sendToUpdate() {
    // handler
    if (progressHandler == null) {
        progressHandler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
            }
        };
    }
    progressHandler.removeCallbacks(progress);
    progressHandler.post(progress);
}

Runnable progress = new Runnable() {
    @Override
    public void run() {
        if (mp != null) {
            musicCurrentTime = mp.getCurrentPosition();
            musicLength = mp.getDuration();
            Intent intent = new Intent();
            intent
                    .setAction("com.cookie.media.MUSIC_UPDATE");
            intent.putExtra("musicCurrentTime", musicCurrentTime);
            intent.putExtra("musicId", musicId);
            intent.putExtra("musicLength", musicLength);
            sendBroadcast(intent);
        }
        progressHandler.removeCallbacks(progress);
        progressHandler.postDelayed(progress, 1000);
    }
};

Как это.{} , чтобы избежать потребления при остановке или остановке медиаплеера.

0 голосов
/ 12 января 2012
> I would like to ask your advice on the best aproach on threading.

Может быть, посмотрите официальный учебник по медиаплееру на http://developer.android.com/guide/topics/media/mediaplayer.html помогает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...