Android App不断因新的Intent而崩溃

时间:2020-05-28 20:30:45

标签: java android android-intent

所以我得到了以下错误代码:Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference

该行:Intent callMode = new Intent(MainActivity.this, IncallActivity.class);

我想做的是在接到电话时设置一个新的活动。以下功能是应“切换”到该活动的功能。

public void callMode() {
    Intent callMode = new Intent(MainActivity.this, IncallActivity.class);
    startActivity(callMode);
}

它位于MainActivity类内部,位于onCreate函数之外。 当我尝试将其放入onCreate函数中时(当然没有public void callMode()),它可以工作,但这不是目标。

我正试图从另一个类中激活此新活动,该类监听呼叫。

public class CallReceiver extends BroadcastReceiver {
    IncallActivity incallActivity = new IncallActivity();
    public MainActivity mainActivity;

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_OFFHOOK)) {
            mainActivity.callMode();
        } else if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_IDLE)) {
            incallActivity.endCallMode();
        }
    }
}

那为什么会出现此错误?

1 个答案:

答案 0 :(得分:0)

我找到了一种方法。

您需要在代码中添加public static Context context,然后在onCreate中执行context = getBaseContext();

从那里,您可以从任何所需的班级开始第二个活动。