为什么 Toast.maketoast 在 BroadcastReceiver class 中不起作用

Why Toast.maketoast is not working in the BroadcastReceiver class

我在尝试调用 BroadcastReceiver 类型 class 的 onReceive 函数中的 Toast.makeText 函数时收到错误消息。 这不是 another Question 的副本,因为我正在调用 show() 方法,这是编译时问题 错误是:无法解析方法 makeText。

如果我在任何其他 Activity 类型 Class.

中调用它,相同的函数工作正常

这是我正在尝试 运行 的代码。

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class CallStateReceiver  extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(this,"test", Toast.LENGTH_SHORT).show();
    }
}

我猜 context 有问题。将其更改为:

Toast.makeText(context, "test", Toast.LENGTH_SHORT).show();

Context 从 BroadcastReceiver class 传递到 Toast.change 你的 toast onReceive 方法,如下所示

@Override
 public void onReceive(Context context, Intent intent) {

  Toast.makeText(context,"test", Toast.LENGTH_SHORT).show();
 }

改变这个

Toast.makeText(this,"test", Toast.LENGTH_SHORT).show();

至此

Toast.makeText(context,"test", Toast.LENGTH_SHORT).show();

并尝试