当我的广播接收者收到wifi状态发生变化时,我试图从我的MainActivity调用一个方法。我的接收器类中的代码如下所示:
public class ActionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Wifi toggled", Toast.LENGTH_SHORT).show();
}
对于broadcastreceiver(toast工作得非常好),我想调用一个创建通知的方法,如下所示:
public void createNotification() {
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle(getResources().getString(R.string.nTitle))
.setContentText(getResources().getString(R.string.nText));
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(contentIntent);
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(notiId, builder.build());
}
如果我只是说:
MainActivity.createNotification();
在onReceive它不会工作。我做错了什么?
感谢您的帮助!
答案 0 :(得分:0)
MainActivity是类,您需要的是访问正在运行的实例,因此您需要使用传递的实例,上下文,但您需要将其强制转换,以便您可以使用以下内容:
((MainActivity) context).createNotification();