java - 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();
}
}
}
那么为什么会出现这个错误呢?
解决方案
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.