按下模拟器Android后退按钮的例外情况

时间:2012-01-16 13:49:26

标签: android android-intent

我正在创建一个应用程序,其中第一个活动调用结果的第二个活动,即startActivityForResult(intent,SELECT_FILE);,但是当我按下我的模拟器的后退按钮时,它会转到第二个活动,它会引发异常:

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=0, data=null} to activity {com.upload/com.upload.FileUploadActivity}: java.lang.NullPointerException

我该怎么做..?

Thankx

1 个答案:

答案 0 :(得分:0)

当您使用startActivityForResult开始新活动时,预计新活动结束时会产生结果。通常,新活动结束,结果在finish()方法中定义。

我怀疑发生的事情是你没有在新活动中处理后退按钮,因此不会产生任何结果。然后当'onActivityResult()is called in the old activity there is no activity to process and you are getting the NullPointerException`时。

您可以通过以下两种方式解决此问题。

在新活动中按下后退按钮,按下后按住finish()设置结果。或者在旧活动中检查结果以确保它是有效的并且不为空(无论如何你应该真的这样做)