1

我正在开发一个简单的应用程序,但我遇到了一个错误,我不太确定为什么会发生这个错误。

我正在玩游戏,然后退出游戏。我的应用程序必须在后台,因为游戏一结束它就给我一个错误。

在我的手机发生错误后,我立即记录了一个事件日志。如下(com.myapp 是我的应用程序):

游戏结束:

06-16 00:32:41.291 I/am_finish_activity(  630): [0,813606986,4357,com.kabam.marvelbattle/com.explodingbarrel.Activity,app-request]
06-16 00:32:41.297 I/am_home_stack_moved(  630): [0,0,1,1,finishActivity adjustTopFocus setFocusedActivity]

我的应用程序获得焦点:

06-16 00:32:41.303 I/am_focused_activity(  630): [0,com.myapp/.MainActivity]
06-16 00:32:41.327 I/am_pause_activity(  630): [0,813606986,com.kabam.marvelbattle/com.explodingbarrel.Activity]
06-16 00:32:41.891 I/am_proc_start(  630): [0,9039,10178,com.myapp,activity,com.myapp/.MainActivity]
06-16 00:32:41.949 I/am_proc_bound(  630): [0,9039,com.myapp]
06-16 00:32:42.002 I/configuration_changed(  630): 1152

我的应用活动重启:

06-16 00:32:42.068 I/am_restart_activity(  630): [0,871748964,4355,com.myapp/.MainActivity]
06-16 00:32:42.088 I/dvm_lock_sample(  630): [system_server,1,ActivityManager,87,ActivityManagerService.java,1782,-,6242,17]
06-16 00:32:42.118 I/force_gc(  630): Binder
06-16 00:32:42.680 I/am_proc_start(  630): [0,9073,10053,com.svox.pico,service,com.svox.pico/.PicoService]
06-16 00:32:42.755 I/am_proc_bound(  630): [0,9073,com.svox.pico]

空指针异常 :

06-16 00:32:42.917 I/am_crash(  630): [9039,0,com.myapp,8961606,java.lang.NullPointerException,Attempt to invoke virtual method 'void com.myapp.beans.FieldHolder.setTitle(java.lang.String)' on a null object reference,ThirdFragment.java,26]

澄清 NullPointerException :

我有一个活动(MainActivity)

public void replaceFragment(...) {
    // ...
    fragmentTransaction.replace(..)
    // ...
}

方法。

此方法在 MainActivity.onCreate() 中调用。

每当用户在应用程序中导航时,都会调用此方法来替换当前显示的片段。这样做时,它将“FieldHolder”类实例注入到片段中。

退出游戏后,Android 显然尝试使用 ThirdFragment 作为当前显示的片段重新启动我的应用程序。

但是在上面的错误中,ThirdFragment 没有得到FieldHolder 类实例,也就是说Android 系统没有在am_restart_activity 上调用MainActivity 的replaceFragment(..) 方法。

我怎样才能防止这个错误?

注意:我猜我必须重写 MainActivity 中的 onResume 方法并在其中调用 replaceFragment(..) 但我怎么知道要显示哪个 Fragment?(在这种情况下是 ThirdActivity ?)

4

0 回答 0