Android App不断因新的Intent而崩溃

问题描述 投票:-3回答:1

所以我得到了此错误代码: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();
        }
    }
}

所以为什么会出现此错误?

java android android-intent
1个回答
0
投票

我找到了一种方法。

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

从那里,您可以从任何所需的课程中启动第二个活动。

© www.soinside.com 2019 - 2024. All rights reserved.