解决方案 »

  1.   

    看看 什么样的异常, 调用 finish() 出现的 崩溃日志 贴下 
      

  2.   

    觉得应该是你的线程做了什么操作致使,看下finsh后的logcat吧,,,
      

  3.   

    第一问题,interrupt只是改变了线程的中断状态,不会立刻中断一个正在运行的线程。如果调用了interrupt后,线程进入阻塞时,显示就会抛出异常退出。
    第二问题,onBackPressed()方法相当于点击back按钮。
      

  4.   

    谢谢各位!
    这个是error:
    07-31 11:30:37.390: E/Posix(16040): [CDS]Libcore_io_Posix-throwErrnoException, functionName: access; errno: No such file or directory
    07-31 11:30:51.318: E/AndroidRuntime(16040): FATAL EXCEPTION: main
    07-31 11:30:51.318: E/AndroidRuntime(16040): java.lang.RuntimeException: Unable to pause activity {com.zhushisoft/com.zhushisoft.MainActivity}: java.lang.NullPointerException
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2861)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2813)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2791)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at android.app.ActivityThread.access$800(ActivityThread.java:134)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1254)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at android.os.Handler.dispatchMessage(Handler.java:99)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at android.os.Looper.loop(Looper.java:154)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at android.app.ActivityThread.main(ActivityThread.java:4624)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at java.lang.reflect.Method.invokeNative(Native Method)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at java.lang.reflect.Method.invoke(Method.java:511)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at dalvik.system.NativeStart.main(Native Method)
    07-31 11:30:51.318: E/AndroidRuntime(16040): Caused by: java.lang.NullPointerException
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at com.baidu.platform.comapi.map.e.onPause(Unknown Source)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at com.baidu.mapapi.map.MapView.onPause(Unknown Source)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at com.zhushisoft.MainActivity.onPause(MainActivity.java:955)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at android.app.Activity.performPause(Activity.java:4577)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1201)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2844)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  ... 12 more后来发现退回键也不灵。现在觉得是不是线程还没有完全中断?
    我在使用intent跳转时发现有两种情况:
    一是两个Activity都有线程,跳过去之后再跳回来或再跳另一个,采用intent的方式或finish()的方式都出错;上面是再跳另一个的错误信息;
    二是第一个有,第二个没有,跳过去第二个能正常返回,但再跳一次就异常中断了!
    这个问题困惑了我很久,请帮忙分析一下是什么情况,应该如何处理,谢谢!
      

  5.   

    这个是第一个有线程,第二个没有线程,跳过去第一次能正常返回,第二次跳过去中途出错了!
    07-31 11:37:22.553: E/Posix(16532): [CDS]Libcore_io_Posix-throwErrnoException, functionName: access; errno: No such file or directory
    07-31 11:37:25.870: E/AndroidRuntime(16532): FATAL EXCEPTION: main
    07-31 11:37:25.870: E/AndroidRuntime(16532): java.lang.RuntimeException: Unable to destroy activity {com.zhushisoft/com.zhushisoft.Mysetting}: java.lang.NullPointerException
    07-31 11:37:25.870: E/AndroidRuntime(16532):  at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3271)
    07-31 11:37:25.870: E/AndroidRuntime(16532):  at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3289)
    07-31 11:37:25.870: E/AndroidRuntime(16532):  at android.app.ActivityThread.access$1200(ActivityThread.java:134)
    07-31 11:37:25.870: E/AndroidRuntime(16532):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280)
    07-31 11:37:25.870: E/AndroidRuntime(16532):  at android.os.Handler.dispatchMessage(Handler.java:99)
    07-31 11:37:25.870: E/AndroidRuntime(16532):  at android.os.Looper.loop(Looper.java:154)
    07-31 11:37:25.870: E/AndroidRuntime(16532):  at android.app.ActivityThread.main(ActivityThread.java:4624)
    07-31 11:37:25.870: E/AndroidRuntime(16532):  at java.lang.reflect.Method.invokeNative(Native Method)
    07-31 11:37:25.870: E/AndroidRuntime(16532):  at java.lang.reflect.Method.invoke(Method.java:511)
    07-31 11:37:25.870: E/AndroidRuntime(16532):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
    07-31 11:37:25.870: E/AndroidRuntime(16532):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
    07-31 11:37:25.870: E/AndroidRuntime(16532):  at dalvik.system.NativeStart.main(Native Method)
    07-31 11:37:25.870: E/AndroidRuntime(16532): Caused by: java.lang.NullPointerException
    07-31 11:37:25.870: E/AndroidRuntime(16532):  at com.zhushisoft.Mysetting.onDestroy(Mysetting.java:435)
    07-31 11:37:25.870: E/AndroidRuntime(16532):  at android.app.Activity.performDestroy(Activity.java:4643)
    07-31 11:37:25.870: E/AndroidRuntime(16532):  at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1081)
    07-31 11:37:25.870: E/AndroidRuntime(16532):  at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3258)
    07-31 11:37:25.870: E/AndroidRuntime(16532):  ... 11 more
    这个问题困惑了我很久,请帮忙分析一下是什么情况,应该如何处理,谢谢! 
      

  6.   

    第一个 : 百度地图报了 空指针 ,  是不是 你把 百度地图用的 数据 置空 了 看看 
    07-31 11:30:51.318: E/AndroidRuntime(16040): Caused by: java.lang.NullPointerException
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at com.baidu.platform.comapi.map.e.onPause(Unknown Source)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at com.baidu.mapapi.map.MapView.onPause(Unknown Source)
    07-31 11:30:51.318: E/AndroidRuntime(16040):  at com.zhushisoft.MainActivity.onPause(MainActivity.java:955)
    第二个 :  空指针啊, 找出这个位置的代码 看看 怎么成为 null 了
    07-31 11:37:25.870: E/AndroidRuntime(16532): Caused by: java.lang.NullPointerException
    07-31 11:37:25.870: E/AndroidRuntime(16532):  at com.zhushisoft.Mysetting.onDestroy(Mysetting.java:435)
      

  7.   

    非常感谢!让我对线程有了一点点初步的理解。
    第一个问题已解决,是不愉当的摧毁了地图;
    第二个问题,仔细查看了下,跳过来的Acitivity中内部方法中有一个线程,当满足条件时才启用,
         protected void onDestroy() {
         BackMusic.stop(this);
         if ( t_save!= null)
         {
            if( t_save.isAlive()){t_save.interrupt();t_save=null;}//是否激活
         } 
         android.os.Process.killProcess(android.os.Process.myPid()) ;   //获取PID 
         System.exit(0);   //常规java、c#的标准退出法,返回值为0代表正常退出
         super.onDestroy();
         }
    还是报错啊!!!
    报错信息不知是什么?
    07-31 16:00:04.278: E/Posix(621): [CDS]Libcore_io_Posix-throwErrnoException, functionName: access; errno: No such file or directory
    请问这种情况如何处理?
      

  8.   

    请问退出一个Activity时应如何安全的处理该Activity中的线程?谢谢!
      

  9.   

    请问退出一个Activity时应如何安全的处理该Activity中的线程?谢谢!线程可以关闭啊~在finish()之前关闭。或者如果不是执行下载大文件的任务可以用AsyncTask。但一定要用线程的话,执行完Handler+Message发送完消息没有其他事情干的话就可以关闭线程了
      

  10.   

    不是说用.stop()不安全吗?
    我在中断线程时,发现用interrupt,再次进去后线程还在运行;
    用stop()后返回第一个Activity,再次跳过去第二个Activity出错,而且在error中没出信息。
      

  11.   

    我用了很多停止线程的办法都没法解决这个问题,后来仔细看了下LOG:
    我原来对于Activity的finish()的理解,关闭了,里边的BMP对象不是自己释放的吗,我第一次跳过来没问题,关闭后再跳过来一次,怎么会内存溢出呢?