相关疑难解决方法(0)

Android"只有创建视图层次结构的原始线程才能触及其视图."

我在Android中构建了一个简单的音乐播放器.每首歌曲的视图都包含一个SeekBar,实现方式如下:

public class Song extends Activity implements OnClickListener,Runnable {
    private SeekBar progress;
    private MediaPlayer mp;

    // ...

    private ServiceConnection onService = new ServiceConnection() {
          public void onServiceConnected(ComponentName className,
            IBinder rawBinder) {
              appService = ((MPService.LocalBinder)rawBinder).getService(); // service that handles the MediaPlayer
              progress.setVisibility(SeekBar.VISIBLE);
              progress.setProgress(0);
              mp = appService.getMP();
              appService.playSong(title);
              progress.setMax(mp.getDuration());
              new Thread(Song.this).start();
          }
          public void onServiceDisconnected(ComponentName classname) {
              appService = null;
          }
    };

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.song);

        // ...

        progress = (SeekBar) findViewById(R.id.progress);

        // ...
    }

    public void run() { …
Run Code Online (Sandbox Code Playgroud)

multithreading android

879
推荐指数
18
解决办法
53万
查看次数

在Android中显示ProgressBar一段时间

我必须在我的Android应用程序中等待几秒钟,我想在此期间显示进度条,我该怎么做?

我试过这个代码:

    public boolean WaitTask() {

        pDialog = ProgressDialog.show(context,null, "Lädt..",true);
        new Thread() {
        public void run() {
            try{
                // just doing some long operation
                sleep(2000);
             } catch (Exception e) {  }
             pDialog.dismiss();
             }
         }.start();
        return true;
   }
Run Code Online (Sandbox Code Playgroud)

但是进度条立即关闭而不等待两秒钟.我的问题在哪里?

进度条应该类似于Android开发者在站点中显示的活动圈.

更新 AsyncTask

private class WaitTime extends AsyncTask<Void, Void, Void> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        mDialog.show();
    }
    protected void onPostExecute() {
        mDialog.dismiss();
    }

@Override
protected void onCancelled() {
    mDialog.dismiss();
    super.onCancelled();
}

    @Override
    protected Void doInBackground(Void... params) {
        long …
Run Code Online (Sandbox Code Playgroud)

android wait progress-bar

9
推荐指数
2
解决办法
3万
查看次数

ProgressDialog不会出现

我在我的活动下面,我用它来下载电影的用户在他们的LoveFilm队列,但ProgressDialog永远不会出现.

public class MyListActivity extends Activity {
    SharedPreferences prefs;
    ProgressDialog m_progressDialog;
    Thread listThread;
    User user;

    private Runnable threadProc_initializeQueue = new Runnable() {
        public void run() {
            user.fetchQueues();
            Queue defaultQueue = user.getDefaultQueue();
            defaultQueue.fetchTitles();

            m_progressDialog.dismiss();
        }
    };

    /* (non-Javadoc)
     * @see android.app.Activity#onCreate(android.os.Bundle)
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        prefs = getSharedPreferences(getString(R.string.app_name), MODE_PRIVATE);

        // Authenticate the user if needs be.
        if(!prefs.getBoolean("isAuthenticated", false)) {
            Intent i = new Intent(this, OAuthActivity.class);
            startActivity(i);
            finish();
        } else {
            // Get the users default list.
            LoveDroid …
Run Code Online (Sandbox Code Playgroud)

android

5
推荐指数
1
解决办法
5438
查看次数

标签 统计

android ×3

multithreading ×1

progress-bar ×1

wait ×1