我是Android开发的新手,所以我真的不知道怎么做/搜索一些东西,如果有一个地方我的问题已经得到解答请告诉我,或者我是不是试着做一些我不应该做的事,谢谢。
所以我的问题是我想用我的应用程序创建不同的通知,每次收到超过1条消息时,我都想读/想要创建一个摘要通知,我没有创建这个问题,但我没有我不知道每次收到新通知时如何更新它。
我也从Android开发人员(http://developer.android.com/intl/pt-br/training/wearables/notifications/stacks.html)中读到,如果我创建一个组并向其添加通知,那么他们应该在堆栈中。这是什么意思?我试过,无论是否有小组,通知都显示为单一。我看到的唯一区别是,当我使用与其他人相同的群组名称调用摘要通知时,他们会消失,这是堆叠的意思吗?
对不起,我的英文不好也许我误会了什么,希望你能帮助我。
这是我写的代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
notificationManager =
NotificationManagerCompat.from(this);
}
final static String GROUP_KEY_EMAILS = "group_key_emails";
NotificationManagerCompat notificationManager;
int n =0;
String sender1="Marco";
String sender2="Michele";
String text1="ci sei?";
String text2="Okk";
public void btn1(View v)
{
Notification notif = new NotificationCompat.Builder(this)
.setContentTitle(sender1)
.setContentText(text1)
.setSmallIcon(R.mipmap.ic_launcher)
.setGroup(GROUP_KEY_EMAILS)
.build();
notificationManager.notify(0, notif);
n++;
}
public void btn2(View v)
{
Notification notif2 = new NotificationCompat.Builder(this)
.setContentTitle(sender2)
.setContentText(text2)
.setSmallIcon(R.mipmap.ic_launcher)
.setGroup(GROUP_KEY_EMAILS)
.build();
notificationManager.notify(1, notif2);
n++;
}
public void btn3(View v)
{
Bitmap largeIcon = BitmapFactory.decodeResource(getResources(),
R.mipmap.ic_launcher);
Notification summaryNotification = new NotificationCompat.Builder(this)
.setContentTitle("MyApp")
.setSubText(Integer.toString(n)+" nuovi messaggi")
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(largeIcon)
.setStyle(new NotificationCompat.InboxStyle()
.addLine(sender1+" "+text1)
.addLine(sender2+" "+text2)
.setBigContentTitle(Integer.toString(n)+" nuovi messaggi")
.setSummaryText("nonsocosascrivere.com"))
.setGroup(GROUP_KEY_EMAILS)
.setGroupSummary(true)
.build();
notificationManager.notify(3, summaryNotification);
}
}
答案 0 :(得分:0)
可以通过提供相同的通知“ID”来更新通知,例如在您的代码中,您的通知ID为“3”:
SELECT UNIX_TIMESTAMP(myDate)-TIMESTAMPDIFF(SECOND, NOW(), UTC_TIMESTAMP())
FROM myTable
来自docs:http://developer.android.com/reference/android/app/NotificationManager.html#notify(int,android.app.Notification)
目前,您正在使用notificationManager.notify(3, summaryNotification);
,但由于您提供了相同的通知ID,因此它正在替换内容,而不是“堆叠”通知。
将“新”通知分开ID。提供需要更新相同ID的通知。 (“更新通知”的一个示例可能是提醒您要发布“约会前15分钟” - 如果用户没有将其解雇,您可能会在以后更新它说“10分钟......”但你不希望这个“堆叠” - 用户不需要看到所有的通知,只需要最近的通知。)