首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Broadcast Receiver - MainActivity不是封闭类

Broadcast Receiver - MainActivity不是封闭类
EN

Stack Overflow用户
提问于 2020-07-31 19:19:14
回答 1查看 119关注 0票数 0

我知道这个问题被问了无数次,但我找不到正确的答案。我只读了学士学位的第三个学期,所以我的知识还不够丰富。

在我完成了我的初学者Java课程(重点是初学者)之后,我正在学习我的第一个Android课程。

由于Corona,几乎没有导师的支持,脚本也缺乏像样的解释。

我正在努力实现我的第一个广播接收器。当电源线插上的时候,它应该是用来敬酒的。

我尝试了一个动态接收器,所以我在MainActivity中注册了接收器,如下所示:

代码语言:javascript
复制
import android.content.IntentFilter;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.content.Intent;


public class MainActivity extends AppCompatActivity {
[...]
private PowerConnectedReceiver mPowerConnectedReceiver;

    public void onResume() {

        super.onResume();

        IntentFilter powerFilter = new IntentFilter(Intent.ACTION_POWER_CONNECTED );

        mPowerConnectedReceiver = new PowerConnectedReceiver();

        getApplicationContext().registerReceiver(mPowerConnectedReceiver , powerFilter);

    }

    @Override

    protected void onPause() {

        getApplicationContext().unregisterReceiver(mPowerConnectedReceiver);

        super.onPause();

    }

广播接收器如下所示,这就是错误弹出的地方。对于Toast的上下文,它表明MainActivity不是一个封闭的类。

代码语言:javascript
复制
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
import static android.widget.Toast.LENGTH_LONG;

public class PowerConnectedReceiver extends BroadcastReceiver {

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

        Toast.makeText(MainActivity.this, "POWER CONNECTED received", LENGTH_LONG ).show();
    }
}

这就是脚本中所教导的实现方式。

正如我提到的,我是编程新手,这可能是很明显的事情,但我没有看到它。

我试过的唯一一件事就是把它改成MainAcivity.class,但是没有效果。感谢您的支持。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-01 02:14:27

您的代码是正确的,但在toast消息中,您必须使用接收方的上下文,即onReceive方法的第一个参数。

从以下位置更新您的吐司消息:

代码语言:javascript
复制
Toast.makeText(MainActivity.this, "POWER CONNECTED received", LENGTH_LONG ).show();

代码语言:javascript
复制
Toast.makeText(context, "POWER CONNECTED received", LENGTH_LONG ).show();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63190894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档