can't instantiate class com.example.xxx.xx.MainActivity$MyReceiver不能初始化内部类

qiang_xi qiang_xi 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
问题困扰我很久了,从国内国外网站均没有找到有效的解决办法,不知道大神们都怎么解决的,特来问一下,希望不吝赐教.
先说一下我要实现的功能:就是获取从bmob的服务器推送过来的消息,用BroadcastReceiver接收,接收到之后再发送一个广播给主界面的broadcastReceiver接收,获取到推送过来的数据之后显示到textView上.就这么简单,但是运行的时候老是报不能初始化类的异常,从各种渠道查找解决办法也没找到,不知道该怎么解决,请这里的大神给个有效的建议或者说,有更好的方式实现这个功能,下面是我的代码:

package com.example.administrator.bmob;

import android.app.Notification;
import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

import cn.bmob.push.PushConstants;

public class Receiver extends BroadcastReceiver {
private NotificationManager manager;
private String STATIC_NORMAL_ACTION = "com.example.administrator.bmob.TEST";

@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(PushConstants.ACTION_MESSAGE)) {
Log.d("bmob", "客户端收到推送内容:" + intent.getStringExtra(PushConstants.EXTRA_PUSH_MESSAGE_STRING));
String msg = intent.getStringExtra(PushConstants.EXTRA_PUSH_MESSAGE_STRING);

manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(context);
builder.setContentText(msg)
.setDefaults(Notification.DEFAULT_LIGHTS | Notification.DEFAULT_SOUND)
.setTicker("懒人账本提醒...")
.setAutoCancel(true)
.setSmallIcon(R.mipmap.ic_launcher);
Notification notification = builder.build();
manager.notify(1, notification);
Intent data = new Intent(STATIC_NORMAL_ACTION);
Bundle bundle = new Bundle();
bundle.putString("data", msg);
data.putExtras(bundle);
context.sendOrderedBroadcast(data, null);
}
}
}

主界面代码:
package com.example.administrator.bmob;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

import cn.bmob.push.BmobPush;
import cn.bmob.v3.Bmob;
import cn.bmob.v3.BmobInstallation;

public class MainActivity extends AppCompatActivity {
private TextView textView;
private String STATIC_NORMAL_ACTION = "com.example.administrator.bmob.TEST";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView);
// 初始化BmobSDK
Bmob.initialize(this, "336be8699869f10b984f71c0c3cdb91a");
// 使用推送服务时的初始化操作
BmobInstallation.getCurrentInstallation(this).save();
// 启动推送服务
BmobPush.startWork(this, "336be8699869f10b984f71c0c3cdb91a");

/* IntentFilter filter = new IntentFilter(STATIC_NORMAL_ACTION);
MyReceiver receiver = new MyReceiver();
registerReceiver(receiver, filter);*/
}
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(STATIC_NORMAL_ACTION)) {
Bundle bundle = getResultExtras(true);
String data = bundle.getString("data");
textView.setText(data);
}
}
}
}

这是报出来的异常:
 Caused by: java.lang.InstantiationException: can't instantiate class com.example.administrator.bmob.MainActivity$MyReceiver; no empty constructor

...全文

相关推荐

深入浅析Java中Static Class及静态内部类和非静态内部类的不同

**访问权限**: - 静态内部类可以访问外部类的静态成员,但不能访问非静态成员。这是因为静态成员属于类本身,而不是类的实例。

weixin_38642897

Python 抽象属性中发生的错误 TypeError: Can‘t instantiate abstract class XXX with abstract methods xxx

如果在我们写代码的过程中产生了错误,很大的可能性是我们对抽象类进行了实例化。下面我们先来看一个产生上述错误的示例,看一下错误是如何发生的。# 定义一个抽象类pass# 创建一个子类,但不实现抽象方法pass# 尝试实例化子类接下来可以运行一下上面的代码看一下运行结果。这段代码的错误就在于,我们创建了一个继承自的 SubClass 子类,但是 SubClass 并没有实现这个抽象方法。因此,当我们尝试实例化 SubClass 时,Python会抛出""错误。

迹忆客

Class详解内部类等

成员内部类: 成员内部类就像外部类的成员变量一样,可以访问外部类的所有成员。但是,成员内部类不能包含静态成员,因为它们依赖于外部类的实例。

Null_GGBond

java中匿名内部类详解

**匿名内部类的创建**: 匿名内部类不能像普通类那样单独声明,而是作为`new`关键字的一部分在创建对象时同时声明。

weixin_38728276

Java内部类和匿名内部类的用法说明

(); OuterClass.Innerclass in = t.new Innerclass(); in.innerMethod(); } class Innerclass { public void

weixin_38678796
评论 2
收藏 已收藏
分享
返回顶部
qiang_xi
Android 80,490 成员 91,375 内容