这是用于通过单击按钮然后转到另一个类来创建通知的代码。第二类完全是空的。我不知道为什么它不会出现,即使它不能转向另一个班级。
我已经检查了此文件的“坐位”,“通知”是“开启”。有谁可以帮我检查一下?
MainActivity.class
getname()
activity_main.xml中
package com.example.ww.lab;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.Intent;
import android.support.v4.app.NotificationManagerCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.app.NotificationManager;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private int id = 1;
private NotificationCompat.Builder notification_builder;
private NotificationManagerCompat notification_manager;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
notification_manager.notify(id, notification_builder.build());
}
});
Intent open_activity_intent = new Intent(this, NotificationActivity.class);
PendingIntent pending_intent = PendingIntent
.getActivity(this, 0, open_activity_intent, PendingIntent.FLAG_CANCEL_CURRENT);
notification_builder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("Notification Title")
.setContentText("Notification Body")
.setAutoCancel(true)
.setContentIntent(pending_intent);
notification_manager = NotificationManagerCompat.from(this);
}
}
答案 0 :(得分:8)
正如您所说,已编译的sdk版本为26 。在发布通知之前,您需要设置频道。所以它就像
NotificationManager notification_manager = (NotificationManager) this
.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
String chanel_id = "3000";
CharSequence name = "Channel Name";
String description = "Chanel Description";
int importance = NotificationManager.IMPORTANCE_LOW;
NotificationChannel mChannel = new NotificationChannel(chanel_id, name, importance);
mChannel.setDescription(description);
mChannel.enableLights(true);
mChannel.setLightColor(Color.BLUE);
notification_manager.createNotificationChannel(mChannel);
notification_builder = new NotificationCompat.Builder(this, chanel_id)
} else {
notification_builder = new NotificationCompat.Builder(this);
}
notification_builder.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("Notification Title")
.setContentText("Notification Body")
.setAutoCancel(true)
.setContentIntent(pending_intent);
有关详情,请访问Developer Site