现在在做一个android平台的支付项目,其中的企业信息模块出了问题。归纳如下。
一共6个activity分别是A、B、C、D、E、F。
A是入口,在A中绑定后台服务bindService(A.this, Service.class)并发出广播,然后跳转到登录模块B,登录成功后进入一个GridView布局的ActivityC,GridView上是跳转到各个Acitvity的ImageButton。
*********************重点*************************
点击跳转到企业信息ActivityD,D中是一个ListView显示该用户的所有客户企业名单,我在这个ListView中的setOnItemClickListener()方法中将Intent intent置为null,然后进行跳转,这时程序是报空指针异常,退出后不会重启。
将ActivityD的setOnItemClickListener()方法中将Intent intent = new Intent(D.this, E.class),正常跳转到ActivityE,显示企业的基本信息,ActivityE中有一个“查看详细”按钮,点击按钮会跳转到ActivityF,而在这里,我将提跳转的intent = null后,再点击,程序报空指针退出,但是会重新启动程序,并且直接跳转到ActivityC(企业名单列表)。
*********************问题*************************
1. 为什么两个activity都是空指针退出,一个会重启而一个不会?
2. 程序在异常退出的情况下没有执行onDestroy方法,那应该怎么样将Service销毁?企业空指针异常退出会重启

解决方案 »

  1.   

    第一个问题  很难理解       我能想到的是你设置了不同的启动方式?  比如new task或者其他什么第二个问题  难道你程序不处理异常?  直接让他死什么都不干?  虽说总有可能出现异常,不过遇到的肯定是要处理的  另外如果service是同一个应用里的  也会一起死的   如果是另一个单独的应用    作为服务在后台跑  系统在一定时候也是会杀死的(不知道有没调用onUnbind,如果调了也会结束掉的)