2010-12-09 117 views
1

我有一个用下面的代码启动子活动主要活动:安卓进度对话框不显示

Intent intent = new Intent(); 
intent.setClassName(MyChildActivity.class.getPackage().getName(), MyChildActivity.class.getName()); 
((Activity)context).startActivity(intent); 

我想执行的子活动耗时的任务,并想展示一个ProgressDialog,而我这样做。我的代码如下所示:

private ProgressDialog _progressDialog; 

private OnClickListener btn_onClick = new OnClickListener() { 
    public void onClick(View v) { 
     _progressDialog = ProgressDialog.show(
      v.getContext(), 
      "Please wait", 
      "Performing task..." 
     ); 

     TaskThread t = new ExportThread(v.getContext()); 
     t.start(); 
    } 
}; 

private class TaskThread extends Thread{ 
    private Context _context; 

    public TaskThread(Context context) { 
     _context = context; 
    } 

    private Handler _handler = new Handler() { 
     @Override 
     public void handleMessage(Message msg) { 
      _progressDialog.dismiss(); 
     } 
    }; 


    @Override 
    public void run() { 
     performTask(_context); 
     _handler.sendEmptyMessage(0); 
    } 
} 

由于某些原因,ProgressDialog未显示。如果我在主要活动中使用相同的代码,它就会起作用 - 但不在儿童活动中。此外,下面的代码也无法显示ProgressDialog(但是不敬酒显示):

private ProgressDialog _progressDialog; 

private OnClickListener _btn_onClick = new OnClickListener() { 
    public void onClick(View v) { 
     _progressDialog = ProgressDialog.show(
      v.getContext(), 
      "Please wait", 
      "Performing task..." 
     ); 

     try { 
      Thread.sleep(2000); 
     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     _progressDialog.dismiss(); 

     Toast.makeText(v.getContext(), "Done with progress dialog.", Toast.LENGTH_SHORT).show(); 
    } 
}; 

任何想法了吗?我们不允许从儿童活动中显示ProgressDialog吗?

谢谢。

回答

1

为什么使用线程代替async task

异步任务实现该方法onProgressUpdatepublishProgress这使得它易于显示和更新UI /进展对话。

下面是一些示例代码:http://android-projects.de/2010/12/08/threading-in-android-apps-wir-entwickeln-einen-zahler/

+0

谢谢,ArtWorkAD。我不知道你的建议为什么起作用,但它确实如此。你能向我解释为什么AsyncTask方法在Thread方法不工作时工作?谢谢。 – mahdaeng 2010-12-09 22:08:33