新手请教大家一个问题:
我的程序偶尔崩溃,不太好找原因。目前想使用一种方式:每个activity一个进程,这样崩溃不对导致程序退出。请问这样如何配置。我的程序是一个主界面(activity)显示所有文件,点击文件后,打开另外一个界面(activity)显示文件内容。程序很简单,一共两个activity,但是偶尔在显示文件界面出现异常崩溃。目前想使用另外一个进程打开显示界面,这样崩溃也不会整个程序退出。还有,如果异常崩溃,android会有日志吗?如果有,放在哪个地方。
再次多谢大家了。

解决方案 »

  1.   

    to ultrapro:
        您好,我的这个崩溃问题可能需要花上一天测试甚至更长时间才能出来,请问android的日志能打印到文件吗?
      

  2.   

    “每个activity一个进程”,这种做法很不正常,UI就应该用UI Thread来处理,而不是另起一个Thread,你的第二个Activity会死掉,很可能是在UI Thread做了不该做的事情,比如IO,Internet等操作而导致ANR,请察看你的log
      

  3.   

    可以尝试在AndroidManiFest 文件中 对需要打开的Activity设置适用的启动模式,在新进程中打开activity 你可以试试 singleInstance  这个启动模式
      

  4.   

    to kesenhoo:
        多谢您的回复,问题是我现在实在找不到原因啊。
        嗯,某个activity一个进程很不常见吗?我看新浪微博是不是就这样实现的,在显现某些页面的时候经常显示异常退出,但是主页面并没有退出啊。
      

  5.   

    to flyko920:
        我google了一下singleInstance,没找到如何配置,如果您有个实例,能不能贴一下,多谢您了。
      

  6.   

    某个页面异常退出,不代表就是杀死另外一个Thread啊,你应该知道Activity的生命周期管理吧,那样的处理很正常啊,呵呵,可能是我太孤陋寡闻了,至少目前我没有见过特意为跳转到另外一个Activity而另起一个Thread的,即使是那个页面需要处理很多数据,UI 部分还是属于UI Thread,只不过会另起Thread去做捞数据之类的动作,拿到数据后再显示
      

  7.   

    至于你说的想拿到log,你可以去了解下Android的bugReport是怎么回事,那样就应该可以拿到一些对你有用的log了
      

  8.   

    to kesenhoo:
        多谢您,您提到的概念我再去查一下。我在Android方面还是一个菜鸟,见谅。
        我主要是这个打开文件的界面,里面内容比较复杂,是通过JNI调用的一个so中的东西,而且崩溃没有规律,实在没有办法才想用进程这种方式的。
      

  9.   

    我晕
    这个开发逻辑还真是牛鼻。
    不能因为不好查找,就选择逃避阿,,
    PS:singleInstance 启动的页面崩溃了的话,不影响其他的马?
      

  10.   

    为了使MainActivity和SubActivity在不同的进程中启动,我们分别配置这两个Activity的android:process属性。一般情况下,同一个应用程序的Activity组件都是运行在同一个进程中,但是,如果Activity配置了android:process这个属性,那么,它就会运行在自己的进程中。如果android:process属性的值以":"开头,则表示这个进程是私有的;如果android:process属性的值以小写字母开头,则表示这是一个全局进程,允许其它应用程序组件也在这个进程中运行。这篇文章就是你要找的,如果你想了解更多:http://blog.csdn.net/luoshengyang/article/details/6720261
      

  11.   

    测试人员应该要把崩溃的logcat日志文件给你,可锁定出错位置的类。如果你有很好的编程习惯,关键步骤位置打Log的话。以自己定义的TAG锁定文件,以打印的语句锁定出错位置。adb logcat > log.txt 
      

  12.   

    to yiyaaixuexi:
        多谢您的回帖。您的关于日志打印的问题,如何在真机上打印?(这个是测试人员使用过程中发生的崩溃)。能否通过设置Log类来到达将日志记录到本地文件的功能。