btnLoadUnit.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//LoadData();
refreshData();
}
});
private void refreshData() {
pd = ProgressDialog.show(this, null,
getResources().getString(R.string.loading_tip));// 显示ProgressBar
new Thread(new Runnable() {// 在新线程加载数据
public void run() 
{
unitlists = HtmlReader.getUnitListMobilePage(GlobalApp.URL_MOBILE,
((GlobalApp) getApplication()).getOrgID());
handler.sendEmptyMessage(0);
}
}).start();
}

    Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (unitlists == null) {
Toast.makeText(GetUnitActivity.this,R.string.no_intenert_connection_tip, Toast.LENGTH_LONG).show();

else 
{
            for(int i=0;i<unitlists.size();i++)
            {
             UnitListService.getInstance(GetUnitActivity.this).insert(unitlists.get(i));
            }
}
pd.dismiss();
}
};错误信息:
11-16 11:40:16.596: E/AndroidRuntime(1816): FATAL EXCEPTION: main
11-16 11:40:16.596: E/AndroidRuntime(1816): android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@4063a3d8 is not valid; is your activity running?
11-16 11:40:16.596: E/AndroidRuntime(1816):  at android.view.ViewRoot.setView(ViewRoot.java:527)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at android.view.Window$LocalWindowManager.addView(Window.java:424)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at android.app.Dialog.show(Dialog.java:241)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at android.app.ProgressDialog.show(ProgressDialog.java:107)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at android.app.ProgressDialog.show(ProgressDialog.java:90)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at android.app.ProgressDialog.show(ProgressDialog.java:85)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at com.jixiao.ui.GetUnitActivity.refreshData(GetUnitActivity.java:58)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at com.jixiao.ui.GetUnitActivity.access$4(GetUnitActivity.java:57)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at com.jixiao.ui.GetUnitActivity$3.onClick(GetUnitActivity.java:51)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at android.view.View.performClick(View.java:2485)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at android.view.View$PerformClick.run(View.java:9080)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at android.os.Handler.handleCallback(Handler.java:587)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at android.os.Handler.dispatchMessage(Handler.java:92)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at android.os.Looper.loop(Looper.java:123)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at android.app.ActivityThread.main(ActivityThread.java:3683)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at java.lang.reflect.Method.invokeNative(Native Method)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at java.lang.reflect.Method.invoke(Method.java:507)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-16 11:40:16.596: E/AndroidRuntime(1816):  at dalvik.system.NativeStart.main(Native Method)

解决方案 »

  1.   

    你的activity不在前台运行了,进度条找不到可以依附的activity或window就会这样
      

  2.   


    container.removeAllViews();
    container.addView(manager.startActivity(
    "PAGE_0",
    new Intent(SurveyActivity.this,GetUnitActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
    .getDecorView());
    我就在这个GetUnitActivity,打开进度条的,这样创建的窗口不可以吗,打开进度条吗,怎么改进可以打开。 
      

  3.   

    搞定了,谢谢提醒修改成:pd = ProgressDialog.show(GetUnitActivity.this.getParent(), null,
    getResources().getString(R.string.loading_tip));// 显示ProgressBar就可以了