首页 > 解决方案 > 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();
        }
    }
}

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

标签: javaandroidandroid-intent

解决方案


I found a way to do it.

You need to add a public static Context context to your code, and then in onCreate, do context = getBaseContext();

From there you can launch the second activity from any class you'd like.


推荐阅读