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

时间:2016-08-06 09:20:28

标签: android android-studio android-broadcastreceiver android-toast

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

如果我在任何其他活动类型类中调用它,同样的函数工作正常。

这是我试图运行的代码。

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

3 个答案:

答案 0 :(得分:2)

上下文从BroadcastReceiver类传递给Toast。更改您的toast onReceive方法,如下所示

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

答案 1 :(得分:1)

我猜它在使用#!D:/Programming/Software/python3.4.4/python import cgi, cgitb, imp, mysql.connector host ="localhost" db = "webair" user = "root" password = "" def getConnection(): conn = mysql.connector.connect(user=user,password=password,host=host,database=db) if conn.is_connected(): print("aaaqqqq") return conn 时遇到了麻烦。将其更改为:

context

答案 2 :(得分:1)

更改此

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

到这个

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

并尝试