Android 应用程序在新 Intent 时不断崩溃

Android App keeps on crashing upon new 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);

我想做的是在接到电话时设置一个新的 activity。下面的函数应该是 "switch" 到那个 activity.

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

并且它位于 MainActivity 内部 class,onCreate 函数外部。 当我尝试将它放在 onCreate 函数中时(当然没有 public void callMode())它起作用了,但这不是目标。

我正在尝试从另一个侦听呼叫的 class 激活这个新的 activity。

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();
        }
    }
}

那么为什么会出现这个错误?

我找到了方法。

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

从那里您可以从任何 class 启动第二个 activity。