我这里有这段代码:我这里有这段代码:我这里有这段代码:
public class MainTask extends Activity {
private boolean flag=false;
private Context context;
private String url;
private ProgressDialog pd;
private View view;
public MainTask(Context context,String url,View view) {
this.url=url;
this.view=view;
this.context=context;
BitmapDownloaderTask task = new BitmapDownloaderTask();
task.execute();
}
private Void MainThread() {
int leave=0;
int pass=0;
while(true){
if(leave==-1){
flag=true;
break;
}
else if(pass==Preferences.vcheckimage.size())
break;
for(int i=0;i<Preferences.vcheckimage.size();i++){
if(Preferences.vcheckimage.get(i).equals("-1")){
leave=-1;
break;
}
else{
pass++;
}
}
return null;
}
private class BitmapDownloaderTask extends AsyncTask<Void, Void, Void> {
public BitmapDownloaderTask() {
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
view.setEnabled(false);
pd = new ProgressDialog(context);
pd.setTitle("Processing...");
pd.setMessage("Please wait.");
pd.setCancelable(false);
pd.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
pd.setIndeterminate(true);
pd.show();
}
@Override
protected Void doInBackground(Void... params) {
return MainThread();
}
@Override
protected void onPostExecute(Void result) {
pd.dismiss();
if(flag){
Toast.makeText(context,"Image is not available yet.", Toast.LENGTH_LONG).show();
}
}
}
}
但是当我运行这个时,我得到以下错误:
05-17 18:24:57.069: ERROR/WindowManager(18850): Activity com.mypkg.myP has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@44c46ff0 that was originally added here
05-17 18:24:57.069: ERROR/WindowManager(18850): android.view.WindowLeaked: Activity ccom.mypkg.myP has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@44c46ff0 that was originally added here
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.view.ViewRoot.<init>(ViewRoot.java:231)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.view.Window$LocalWindowManager.addView(Window.java:424)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.app.Dialog.show(Dialog.java:239)
05-17 18:24:57.069: ERROR/WindowManager(18850): at com.mypkg.myP$PreparePairingLinkageData.onPreExecute(viewP.java:183)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.os.AsyncTask.execute(AsyncTask.java:391)
05-17 18:24:57.069: ERROR/WindowManager(18850): at com.mypkg.myP.onCreate(viewP.java:94)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2544)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.app.ActivityThread.access$2200(ActivityThread.java:126)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.os.Handler.dispatchMessage(Handler.java:99)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.os.Looper.loop(Looper.java:123)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.app.ActivityThread.main(ActivityThread.java:4595)
05-17 18:24:57.069: ERROR/WindowManager(18850): at java.lang.reflect.Method.invokeNative(Native Method)
05-17 18:24:57.069: ERROR/WindowManager(18850): at java.lang.reflect.Method.invoke(Method.java:521)
05-17 18:24:57.069: ERROR/WindowManager(18850): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
05-17 18:24:57.069: ERROR/WindowManager(18850): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
05-17 18:24:57.069: ERROR/WindowManager(18850): at dalvik.system.NativeStart.main(Native Method)
有谁知道为什么会这样?我看到和其他帖子但没有帮助我。
先谢谢。
答案 0 :(得分:0)
我想BitmapDownloaderTask
属于MainThread
的内部
是整个问题。尝试匹配括号,解决问题。
修改强> 最后一点来自我的身边。我的MainThread代码就是这个
private Void MainThread() {
int leave = 0;
int pass = 0;
while(true) {
if(leave==-1) {
flag=true;
break;
}
else if(pass==Preferences.vcheckimage.size())
break;
for(int i=0;i<Preferences.vcheckimage.size();i++) {
if(Preferences.vcheckimage.get(i).equals("-1")) {
leave=-1;
break;
} else {
pass++;
}
}
break;
}
return null;
}