我有一个进度对话框,我需要在它完成计数时开始一项活动。但我得到一个错误。所以,这是我的进度对话框方法:
private void myProgress(){
progressBar = new ProgressDialog(this);
progressBar.setCancelable(true);
progressBar.setMessage("Hacking the profile ...");
progressBar.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressBar.setProgress(0);
progressBar.setMax(100);
progressBar.show();
progressBarStatus = 0;
fileSize = 0;
new Thread(new Runnable() {
public void run() {
while (progressBarStatus < 100) {
// process some tasks
progressBarStatus = doSomeTasks();
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
// Update the progress bar
progressBarHandler.post(new Runnable() {
public void run() {
progressBar.setProgress(progressBarStatus);
}
});
}
// progress 100%
if (progressBarStatus >= 100) {
// sleep 2 seconds, so that you can see the 100%
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// Start Result activity
Intent localIntent = new Intent(MainActivity.this, Result.class);
localIntent.putExtra("email", emailText.getText().toString());
startActivity(localIntent);
}
}
}).start();
}
和 doSomeTasks 方法:
public int doSomeTasks() {
while (fileSize <= 1000000) {
fileSize++;
if (fileSize == 100000) {
return 10;
} else if (fileSize == 200000) {
return 20;
} else if (fileSize == 300000) {
return 30;
}
else if (fileSize == 400000) {
return 40;
}
else if (fileSize == 500000) {
return 50;
}
else if (fileSize == 600000) {
return 60;
}
else if (fileSize == 700000) {
return 70;
}
else if (fileSize == 800000) {
return 80;
}
else if (fileSize == 900000) {
return 90;
}
}
return 100;
}
我在这一行收到错误:
localIntent.putExtra("email", emailText.getText().toString());
日志猫:
09-23 14:47:20.946: E/WindowManager(1497): Activity com.myapps.someapp.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@a6aa84f0 that was originally added here
09-23 14:47:20.946: E/WindowManager(1497): android.view.WindowLeaked: Activity com.myapps.someapp.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@a6aa84f0 that was originally added here
09-23 14:47:20.946: E/WindowManager(1497): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:374)
09-23 14:47:20.946: E/WindowManager(1497): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:292)
09-23 14:47:20.946: E/WindowManager(1497): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224)
09-23 14:47:20.946: E/WindowManager(1497): at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149)
09-23 14:47:20.946: E/WindowManager(1497): at android.view.Window$LocalWindowManager.addView(Window.java:547)
09-23 14:47:20.946: E/WindowManager(1497): at android.app.Dialog.show(Dialog.java:277)
09-23 14:47:20.946: E/WindowManager(1497): at com.myapps.someapp.MainActivity.hackAccount(MainActivity.java:67)
09-23 14:47:20.946: E/WindowManager(1497): at com.myapps.someapp.MainActivity.access$0(MainActivity.java:60)
09-23 14:47:20.946: E/WindowManager(1497): at com.myapps.someapp.MainActivity$1.onClick(MainActivity.java:54)
09-23 14:47:20.946: E/WindowManager(1497): at android.view.View.performClick(View.java:4084)
09-23 14:47:20.946: E/WindowManager(1497): at android.view.View$PerformClick.run(View.java:16966)
09-23 14:47:20.946: E/WindowManager(1497): at android.os.Handler.handleCallback(Handler.java:615)
09-23 14:47:20.946: E/WindowManager(1497): at android.os.Handler.dispatchMessage(Handler.java:92)
09-23 14:47:20.946: E/WindowManager(1497): at android.os.Looper.loop(Looper.java:137)
09-23 14:47:20.946: E/WindowManager(1497): at android.app.ActivityThread.main(ActivityThread.java:4745)
09-23 14:47:20.946: E/WindowManager(1497): at java.lang.reflect.Method.invokeNative(Native Method)
09-23 14:47:20.946: E/WindowManager(1497): at java.lang.reflect.Method.invoke(Method.java:511)
09-23 14:47:20.946: E/WindowManager(1497): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
09-23 14:47:20.946: E/WindowManager(1497): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-23 14:47:20.946: E/WindowManager(1497): at dalvik.system.NativeStart.main(Native Method)