运行项目的时候出现闪退的问题:仔细观察是在在进行activity页面跳转的时候,出现了java.lang.RuntimeException: Unable to pause activity报错。
原因所在:我在切换activity时候,调用了函数:
onDestroy();
在Activity的生命活动周期中onDestroy()方法是用来结束Activity的生命周期,释放Activity所占用的资源;当你调用onDestroy()方法时,并进行了跳转等操作,这是需要使用当前Activity的引用的,但是被你使用onDestroy()释放掉了,这时候就出现上述的错误,并提示找不到当前的Activity(No activity):
java.lang.IllegalStateException: No activity
java.lang.RuntimeException: Unable to pause activity {包名/包名.page.main.SplashActivity}: java.lang.IllegalStateException: No activity
at android.app.ActivityThread.performPauseActivityIfNeeded(ActivityThread.java:4943)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:4894)
at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:4845)
at android.app.servertransaction.PauseActivityItem.execute(PauseActivityItem.java:46)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2257)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:233)
at android.app.ActivityThread.main(ActivityThread.java:8030)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:631)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:978)
这样操作是错误的:finish方法是将Activity移出返回栈,所以当你点击手机上面的“back”按键的时候,也不会再找到这个Activity。同时也会调用onDestroy()方法,但是当别的对象还持有这个Activity的引用就无法调用onDestroy。
这个时候应该使用的方法是:
finish();
|