startActivity抛出Nullpointerexception

时间:2014-07-11 09:22:55

标签: android android-activity android-lifecycle

java.lang.NullPointerException
at android.view.ViewGroup.dispatchCancelPendingInputEvents(ViewGroup.java:3405)
at android.view.ViewGroup.dispatchCancelPendingInputEvents(ViewGroup.java:3405)
at android.view.ViewGroup.dispatchCancelPendingInputEvents(ViewGroup.java:3405)
at android.view.ViewGroup.dispatchCancelPendingInputEvents(ViewGroup.java:3405)
at android.view.ViewGroup.dispatchCancelPendingInputEvents(ViewGroup.java:3405)
at android.view.ViewGroup.dispatchCancelPendingInputEvents(ViewGroup.java:3405)
at android.view.View.cancelPendingInputEvents(View.java:13591)
at android.app.Activity.startActivityForResult(Activity.java:3554)
at android.app.Activity.startActivityForResult(Activity.java:3493)
at android.app.Activity.startActivity(Activity.java:3735)
at android.app.Activity.startActivity(Activity.java:3703)
at com.example.mobile.dt.startActivity(PActivity.java:223)
at com.example.mobile.label.SplashActivity.d(SplashActivity.java:280)
at com.example.mobile.label.SplashActivity.b(SplashActivity.java:266)
at com.example.mobile.label.SplashActivity.c(SplashActivity.java:512)
at com.example.mobile.label.SplashActivity.b(SplashActivity.java:446)
at com.example.mobile.label.y.run(SplashActivity.java:388)
at java.lang.Thread.run(Thread.java:841)

我正在创建一个由ChildActivity扩展的BaseActivity。 当我试图调用startActivity(intent)时它会发生。

SplashActivity(儿童)

public void openLoginActivity() {
    Intent intent = new Intent(this, com.example.mobile.LoginActivity.class);
    startActivity(intent);
    finish();
}

在BaseActivity中

@Override
public void startActivity(Intent intent) {
    super.startActivity(intent);
}

这是在SplashActivity调用的代码:388我正在调用StatusResponse(PResponse)

private void StatusResponse(Response response) { 
    JSONObject jsonResponse = response.response;
    if (jsonResponse == null) {
        restart();
        return;
    } else {

        try {
            openLoginActivity();
        } catch (JSONException ex) {
            restart();
            return;
        }
    }
}

它有时只会投掷。我不确定为什么会这样。

有人帮助我!!!

1 个答案:

答案 0 :(得分:0)

您正在使用第一个参数this创建一个Intent。 在您删除活动之后。 我认为系统无法找到变量this的值。

您不需要在finish()之后启动startActivity()。 垃圾收集器在一段时间后删除未使用的变量。这就是它随机失败的原因。

编辑:

我的不好,我认为你目前正在使用response而不检查他是否存在。 所以添加一个IF,如:

if (response != null) {
    JSONObject jsonResponse = response.response;
    // SOME CODE
}