我有一个从通知栏打开的活动,但是当我这样做时NotificationManager.notify(...)
,我将意图赋予不同的捆绑,以便每个通知打开相同的活动,但从DB获取彼此的其他信息.
但是当我尝试输入任何通知时(例如有3个通知),它们都会将我发送到与最后一个相同的捆绑的活动.尝试使用一些Flags之后,我真的不知道问题出在哪里(一些标志使通知进入第一个包的活动).
我按照他们在教程中使用它的方式.
android android-intent notificationmanager android-pendingintent
我希望能够发出通知以提醒用户有关已完成的计时器,但是当您单击通知时我不希望有意图.
我试过传入null的意图
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(ns);
int icon = R.drawable.icon;
CharSequence tickerText = "Hello";
long when = System.currentTimeMillis();
Notification notification = new Notification(icon, tickerText, when);
CharSequence contentTitle = "My notification";
CharSequence contentText = "Hello World!";
notification.setLatestEventInfo(context, contentTitle, contentText, null);
mNotificationManager.notify(HELLO_ID, notification);
Run Code Online (Sandbox Code Playgroud) 启动通知时,如何让设备振动或发出声音.
我听说过FLAGS.但是我如何将它们用于声音和振动?
我和通知管理器有一个奇怪的错误.
@Override
public void onMessageReceived(String from, Bundle data)
{
Log.i(TAG, "IP : " + (String) data.get("ip"));
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Intent acceptNextIntent = new Intent(MainActivity.BROADCAST_KEY_ACCEPT);
// acceptNextIntent.putExtra("ip", (String) data.get("blah")); //add stuff here
PendingIntent acceptNextPendingIntent = PendingIntent.getBroadcast(this, 0, acceptNextIntent, 0);
Intent declineNextIntent = new Intent(MainActivity.BROADCAST_KEY_DECLINE);
PendingIntent declineNextPendingIntent = PendingIntent.getBroadcast(this, 0, declineNextIntent, 0);
NotificationCompat.Action acceptAction = new NotificationCompat.Action
.Builder(R.drawable.common_signin_btn_icon_disabled_focus_light, "Grant Request", acceptNextPendingIntent).build();
NotificationCompat.Action declineAction = new NotificationCompat.Action
.Builder(R.drawable.common_signin_btn_icon_focus_dark, "Decline Request", declineNextPendingIntent).build();
NotificationCompat.Builder notification = new NotificationCompat.Builder(this)
.setContentTitle("New Password Request From " …
Run Code Online (Sandbox Code Playgroud) Android中是否有任何方法可以检测用户何时向左侧滑动通知并将其删除?我正在使用闹钟管理器来设置重复警报,当用户取消通知时,我需要停止重复警报.这是我的代码:
设置重复提醒:
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), repeatFrequency, displayIntent);
Run Code Online (Sandbox Code Playgroud)
我的通知代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Get the notification ID.
int notifID = getIntent().getExtras().getInt("Reminder_Primary_Key");
//Get the name of the reminder.
String reminderName = getIntent().getExtras().getString("Reminder_Name");
//PendingIntent stores the Activity that should be launched when the user taps the notification.
Intent i = new Intent(this, ViewLocalRemindersDetail.class);
i.putExtra("NotifID", notifID);
i.putExtra("notification_tap", true);
//Add FLAG_ACTIVITY_NEW_TASK to stop the intent from being launched when the notification is triggered.
PendingIntent displayIntent = PendingIntent.getActivity(this, notifID, …
Run Code Online (Sandbox Code Playgroud) 通过AlarmManager启动服务时,我使用以下代码启动通知:
nm = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
CharSequence from = "App";
CharSequence message = "Getting Latest Info...";
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(), 0);
Notification notif = new Notification(R.drawable.icon,
"Getting Latest Info...", System.currentTimeMillis());
notif.setLatestEventInfo(this, from, message, contentIntent);
nm.notify(1, notif);
Run Code Online (Sandbox Code Playgroud)
如何设置此项目的意图,以便当用户点击它时,它会启动某个活动?
我在通知栏上发送了一些通知,我希望在点击其中一个通知时清除所有通知.现在我通过使用Flag逐个清除.我知道notificationManager.cancelAll()
可以清除所有通知但我应该放在哪里,以便一旦点击通知之一我就可以触发.
private static void generateNotification(Context context, String message) {
int icon = R.drawable.ic_launcher;
long when = System.currentTimeMillis();
NotificationManager notificationManager = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(icon, message, when);
String title = context.getString(R.string.app_name);
Intent notificationIntent = new Intent(context, MainActivity.class);
// set intent so it does not start a new activity
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent =
PendingIntent.getActivity(context, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, title, message, intent);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notificationManager.notify(msgid, notification);
//notificationManager.cancelAll(); //i wan to clear all when the notification …
Run Code Online (Sandbox Code Playgroud) 我有一个服务,它会创建一个通知,然后定期用某些信息更新它.电话崩溃并重新启动大约12分钟后,我认为这是由于以下代码中的内存泄漏导致我如何更新通知,有人请检查/建议我是否是这种情况和我我做错了.
的onCreate:
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Run Code Online (Sandbox Code Playgroud)
createNotification:
private void createNotification() {
Intent contentIntent = new Intent(this,MainScreen.class);
contentIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent appIntent =PendingIntent.getActivity(this,0, contentIntent, 0);
contentView = new RemoteViews(getPackageName(), R.layout.notification);
contentView.setImageViewResource(R.id.image, R.drawable.icon);
contentView.setTextViewText(R.id.text, "");
notification = new Notification();
notification.when=System.currentTimeMillis();
notification.contentView = contentView;
notification.contentIntent = appIntent;
}
Run Code Online (Sandbox Code Playgroud)
updateNotification:
private void updateNotification(String text){
contentView.setTextViewText(R.id.text, text);
mNotificationManager.notify(0, notification);
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我希望能够根据需要从我的Android应用程序获得有效通知.(实际上我只需要知道是否有)我一直在寻找这种行为,似乎,我只有两个选项:NotificationManager.getActiveNotifications()
这正是我需要的,但只能从SDK 23或使用NotificationService
但我可以使用真的不喜欢这个解决方案,因为我必须向我的应用程序提供阅读所有通知的权限,这绝对是一种过度杀伤力.
有没有人知道任何行为类似NotificationManager.getActiveNotifications()
但不需要SDK> = 23的解决方案?
提前致谢!
要求是制作自定义通知,因为android的默认通知仅允许图像.因此,我详细介绍了如何在扩展时附加自定义UI以进行通知,准备好的答案是创建自定义视图并传递给通知管理器并允许从API级别16开始.所以我做了一个,这里是我的布局xml代码 - filename:notification_custom_view_new:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/GhostWhite">
<RelativeLayout
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="65dp">
<ImageView
android:id="@+id/big_icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_marginLeft="12dp"
android:scaleType="fitCenter" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/big_icon"
android:layout_alignTop="@+id/big_icon"
android:layout_toRightOf="@+id/big_icon"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:weightSum="2">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.6"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:text="Title"
android:textColor="@color/colorBlackDimText"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="2"
android:paddingTop="2dp"
android:text="message"
android:textColor="@color/colorBlackDimText"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.4"
android:gravity="center">
<TextView
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="2"
android:padding="8dp"
android:text="24:59"
android:textColor="@color/colorBlackDimText"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
<View
android:id="@+id/shadow" …
Run Code Online (Sandbox Code Playgroud)