Android 活动已泄漏窗口/BadToken异常?

Android 活动已泄漏窗口/BadToken异常?,android,Android,在我的应用程序中,我正在使用dropbox库,当我第一次单击dropbox文件下载时,问题出现了,它开始下载文件并将该文件保存到我的SD卡中 但当我第二次点击dropbox文件下载按钮时,首先它进行了身份验证,然后在身份验证之后,它向我显示了以下错误 03-28 16:17:32.610:E/WindowManager(20903):活动 xyz.dropboxActivity已泄漏窗口 com.android.internal.policy.impl.PhoneWindow$DecorView

在我的应用程序中,我正在使用dropbox库,当我第一次单击dropbox文件下载时,问题出现了,它开始下载文件并将该文件保存到我的SD卡中

但当我第二次点击dropbox文件下载按钮时,首先它进行了身份验证,然后在身份验证之后,它向我显示了以下错误

03-28 16:17:32.610:E/WindowManager(20903):活动 xyz.dropboxActivity已泄漏窗口 com.android.internal.policy.impl.PhoneWindow$DecorView@2f474670那个 最初添加于此处03-28 16:17:32.610:E/WindowManager(20903): android.view.WindowLeaked:活动xyz.dropboxActivity已泄漏 window com.android.internal.policy.impl.PhoneWindow$DecorView@2f474670 最初添加到这里03-28 16:17:32.660: E/AndroidRuntime(20903):android.view.WindowManager$BadTokenException: 无法添加窗口--标记android.os。BinderProxy@2f4d63e0不是 有效的你的活动正在进行吗

有人能告诉我为什么

[编辑]

    final static private String APP_KEY = "";
    final static private String APP_SECRET = "";
    private static final String TAG = "Dropbox";

    final static private AccessType ACCESS_TYPE = AccessType.DROPBOX;
    final static private String ACCOUNT_PREFS_NAME = "prefs";
    final static private String ACCESS_KEY_NAME = "ACCESS_KEY";
    final static private String ACCESS_SECRET_NAME = "ACCESS_SECRET";
    DropboxAPI<AndroidAuthSession> mApi;
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    AndroidAuthSession session = buildSession();
    mApi = new DropboxAPI<AndroidAuthSession>(session);

      checkAppKeySetup();

        // Start the remote authentication

        mApi.getSession().startAuthentication(dropboxActivity.this);

        Log.i("mApi.getSessionm", ""+mApi.getSession());
        }

     protected void onResume() {
        super.onResume();
        AndroidAuthSession session = mApi.getSession();

        // The next part must be inserted in the onResume() method of the
         // activity from which session.startAuthentication() was called, so
        // that Dropbox authentication completes properly.
         if (session.authenticationSuccessful()) {
            try {

              // Mandatory call to complete the auth
              session.finishAuthentication();
               Log.i("4", "4");


            /*Intent i=getIntent();
            Bundle b=i.getExtras();
            String FileName=b.getString("Filename");*/
          String FileName="sample_1.csv";
            Log.i("FileName",FileName);

          download download_obj=new download(dropboxActivity.this, mApi,FileName); //The error comes at this line when I am calling download with this context
          download_obj.execute();
         } catch (IllegalStateException e) {
            showToast("Couldn't authenticate with Dropbox:" + e.getLocalizedMessage());
            Log.i(TAG, "Error authenticating", e);
        }
Activity xyz.dropboxActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@405f4d20 that was originally added here
android.view.WindowLeaked: Activity com.kxs.allen.dropboxActivity has leaked window 
com.android.internal.policy.impl.PhoneWindow$DecorView@405f4d20 that was originally added here
    at android.view.ViewRoot.<init>(ViewRoot.java:259)
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
    at android.view.Window$LocalWindowManager.addView(Window.java:424)
    at android.app.Dialog.show(Dialog.java:241)
    at com.kxs.allen.download.onPreExecute(download.java:39)
    at android.os.AsyncTask.execute(AsyncTask.java:391)
    at com.kxs.allen.dropboxActivity.onResume(dropboxActivity.java:139)
    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
    at android.app.Activity.performResume(Activity.java:3832)
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2114)
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2139)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1672)
    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:130)
    at android.app.ActivityThread.main(ActivityThread.java:3733)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:651)
    at dalvik.system.NativeStart.main(Native Method)
threadid=1: thread exiting with uncaught exception (group=0x40018560)
FATAL EXCEPTION: main java.lang.IllegalArgumentException: View not attached to window manager
    at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355)
    at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:200)
    at android.view.Window$LocalWindowManager.removeView(Window.java:432)
    at android.app.Dialog.dismissDialog(Dialog.java:278)
    at android.app.Dialog.access$000(Dialog.java:71)
    at android.app.Dialog$1.run(Dialog.java:111)
    at android.app.Dialog.dismiss(Dialog.java:268)
    at com.kxs.allen.download.onPostExecute(download.java:81)
    at com.kxs.allen.download.onPostExecute(download.java:1)
    at android.os.AsyncTask.finish(AsyncTask.java:417)
    at android.os.AsyncTask.access$300(AsyncTask.java:127)
    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:130)
    at android.app.ActivityThread.main(ActivityThread.java:3733)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:651)
    at dalvik.system.NativeStart.main(Native Method)
03-28 17:47:37.199: E/AndroidRuntime(2489): [Blue Error Handler] Make Debugging Report file for main
03-28 17:47:37.199: E/AndroidRuntime(2489): **java.lang.IllegalArgumentException: View not attached to window manager**
    at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355)
    at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:200)
    at android.view.Window$LocalWindowManager.removeView(Window.java:432)
    at android.app.Dialog.dismissDialog(Dialog.java:278)
    at android.app.Dialog.access$000(Dialog.java:71)
    at android.app.Dialog$1.run(Dialog.java:111)
    at android.app.Dialog.dismiss(Dialog.java:268)
    at com.kxs.allen.download.onPostExecute(download.java:81)
    at com.kxs.allen.download.onPostExecute(download.java:1)
    at android.os.AsyncTask.finish(AsyncTask.java:417)
    at android.os.AsyncTask.access$300(AsyncTask.java:127)
    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:130)
    at android.app.ActivityThread.main(ActivityThread.java:3733)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:651)
    at dalvik.system.NativeStart.main(Native Method)
final static private String APP_KEY=”“;
最终静态私有字符串APP_SECRET=“”;
私有静态最终字符串TAG=“Dropbox”;
最终静态私有AccessType ACCESS\u TYPE=AccessType.DROPBOX;
最终静态私有字符串帐户\u PREFS\u NAME=“PREFS”;
最终静态私有字符串访问密钥\u NAME=“访问密钥”;
最终静态私有字符串访问\u SECRET\u NAME=“访问\u SECRET”;
DropboxAPI mApi;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
AndroidAuthSession会话=buildSession();
mApi=新的DropboxAPI(会话);
checkAppKeySetup();
//启动远程身份验证
mApi.getSession().startAuthentication(dropboxActivity.this);
Log.i(“mApi.getSessionm”,“+mApi.getSession());
}
受保护的void onResume(){
super.onResume();
AndroidAuthSession session=mApi.getSession();
//下一部分必须插入到的onResume()方法中
//从中调用session.startAuthentication()的活动,因此
//Dropbox身份验证正确完成。
if(session.authenticationSuccessful()){
试一试{
//完成身份验证的强制调用
session.finishAuthentication();
日志i(“4”、“4”);
/*Intent i=getIntent();
Bundle b=i.getExtras();
字符串文件名=b.getString(“文件名”)*/
字符串FileName=“sample_1.csv”;
Log.i(“文件名”,文件名);
download download_obj=new download(dropboxActivity.this,mApi,FileName);//当我使用此上下文调用download时,错误出现在此行
下载_obj.execute();
}捕获(非法状态){
showToast(“无法通过Dropbox进行身份验证:+e.getLocalizedMessage());
Log.i(标签“错误验证”,e);
}
A*nd download.java文件是:*

公共类下载扩展异步任务{
私人活动语境;
ProgressDialog=null;
DropboxAPI mApi;
字符串文件名;
下载(活动上下文、DropboxAPI mApi、字符串文件名)
{
this.context=context;
this.mApi=mApi;
this.FileName=文件名;
}
@凌驾
受保护的void onPreExecute()
{
dialog=新建进度对话框(上下文);
setMessage(“加载…”);
dialog.show();
}
@凌驾
受保护的布尔doInBackground(无效…arg0){
//TODO自动生成的方法存根
File File=新文件(“/sdcard/”+文件名);
OutputStream out=null;
布尔结果=假;
试一试{
out=新的BufferedOutputStream(新文件输出流(文件));
}捕获(FileNotFoundException e1){
//TODO自动生成的捕捉块
e1.printStackTrace();
}
试一试{
DropboxFileInfo=mApi.getFile(“aaa”+文件名,null,out,null);
Log.i(“DbExampleLog”,“文件的版本是:”+info.getMetadata().rev);
Intent JumpToParseCSV=新Intent(上下文,ParseCSV.class);
JumpToParseCSV.putExtra(“文件名”,file.getAbsolutePath());
Log.i(“path”、“FileName”+file.getAbsolutePath());
((活动)上下文).finish();
背景。起始触觉(JumpToParseCSV);
结果=真;
}捕获(DropBoxexException e){
e(“DbExampleLog”,“下载时出错。”);
delete();
结果=假;
}
返回结果;
}
@凌驾
受保护的void onProgressUpdate(整型…值)
{
super.onProgressUpdate(值);
//对话框。递增进度(5);
}
@凌驾
受保护的void onPostExecute(布尔结果)
{
dialog.dismise();
如果(结果==真)
{
新建AlertDialog.Builder(上下文)
.setTitle(“信息”)
.setMessage(“所选文件已上载,请导航到仪表板!!”)
.setPositiveButton(“确定”,
新建DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
//TODO自动生成的方法存根
}
}).show();
}
其他的
{
新建AlertDialog.Builder(上下文)
.setTitle(“信息”)
.setMessage(“下载时出错!!”)
.setPositiveButton(“确定”,
新建DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
//TODO自动生成的方法存根
意图i=新意图(上下文,jjj.class);
((活动)上下文).finish();
背景。起始触觉(i);
}
}).show();
}
//Log.i(“da
Activity xyz.dropboxActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@405f4d20 that was originally added here
android.view.WindowLeaked: Activity com.kxs.allen.dropboxActivity has leaked window 
com.android.internal.policy.impl.PhoneWindow$DecorView@405f4d20 that was originally added here
    at android.view.ViewRoot.<init>(ViewRoot.java:259)
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
    at android.view.Window$LocalWindowManager.addView(Window.java:424)
    at android.app.Dialog.show(Dialog.java:241)
    at com.kxs.allen.download.onPreExecute(download.java:39)
    at android.os.AsyncTask.execute(AsyncTask.java:391)
    at com.kxs.allen.dropboxActivity.onResume(dropboxActivity.java:139)
    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
    at android.app.Activity.performResume(Activity.java:3832)
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2114)
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2139)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1672)
    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:130)
    at android.app.ActivityThread.main(ActivityThread.java:3733)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:651)
    at dalvik.system.NativeStart.main(Native Method)
threadid=1: thread exiting with uncaught exception (group=0x40018560)
FATAL EXCEPTION: main java.lang.IllegalArgumentException: View not attached to window manager
    at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355)
    at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:200)
    at android.view.Window$LocalWindowManager.removeView(Window.java:432)
    at android.app.Dialog.dismissDialog(Dialog.java:278)
    at android.app.Dialog.access$000(Dialog.java:71)
    at android.app.Dialog$1.run(Dialog.java:111)
    at android.app.Dialog.dismiss(Dialog.java:268)
    at com.kxs.allen.download.onPostExecute(download.java:81)
    at com.kxs.allen.download.onPostExecute(download.java:1)
    at android.os.AsyncTask.finish(AsyncTask.java:417)
    at android.os.AsyncTask.access$300(AsyncTask.java:127)
    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:130)
    at android.app.ActivityThread.main(ActivityThread.java:3733)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:651)
    at dalvik.system.NativeStart.main(Native Method)
03-28 17:47:37.199: E/AndroidRuntime(2489): [Blue Error Handler] Make Debugging Report file for main
03-28 17:47:37.199: E/AndroidRuntime(2489): **java.lang.IllegalArgumentException: View not attached to window manager**
    at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355)
    at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:200)
    at android.view.Window$LocalWindowManager.removeView(Window.java:432)
    at android.app.Dialog.dismissDialog(Dialog.java:278)
    at android.app.Dialog.access$000(Dialog.java:71)
    at android.app.Dialog$1.run(Dialog.java:111)
    at android.app.Dialog.dismiss(Dialog.java:268)
    at com.kxs.allen.download.onPostExecute(download.java:81)
    at com.kxs.allen.download.onPostExecute(download.java:1)
    at android.os.AsyncTask.finish(AsyncTask.java:417)
    at android.os.AsyncTask.access$300(AsyncTask.java:127)
    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:130)
    at android.app.ActivityThread.main(ActivityThread.java:3733)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:651)
    at dalvik.system.NativeStart.main(Native Method)
dialog=new ProgressDialog(context);

dialog=new ProgressDialog(xxxxActivity.this);
if(!isFinishing()) 
{

dialog=new ProgressDialog(xxxxActivity.this);
   ....
   ....
dialog.show();

}