Questions tagged «android-pendingintent»

一个Android类,提供对要执行的Intent和目标动作的描述


9
从Activity外部调用startActivity()?
我正在使用AlarmManager触发广播信号的意图。以下是我的代码: AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent i = new Intent(this, Wakeup.class); try { PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0); Long elapsed += // sleep time; mgr.set(AlarmManager.RTC_WAKEUP, elapsed, pi); } catch(Exception r) { Log.v(TAG, "RunTimeException: " + r); } 我是从调用此代码的Activity,所以我不知道如何得到以下错误... ERROR/AndroidRuntime(7557): java.lang.RuntimeException: Unable to start receiver com.wcc.Wakeup: android.util.AndroidRuntimeException: Calling …

6
通知通过旧的Intent Extras
我正在通过以下代码在BroadcastReceiver中创建一个通知: String ns = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(ns); int icon = R.drawable.ic_stat_notification; CharSequence tickerText = "New Notification"; long when = System.currentTimeMillis(); Notification notification = new Notification(icon, tickerText, when); notification.defaults |= Notification.DEFAULT_VIBRATE; long[] vibrate = {0,100,200,200,200,200}; notification.vibrate = vibrate; notification.flags |= Notification.FLAG_AUTO_CANCEL; CharSequence contentTitle = "Title"; CharSequence contentText = …

8
目的-如果活动正在运行,请将其置于最前面,否则(从通知中)开始一个新的活动
我的应用程序具有通知,这些通知很明显没有任何标志,每次都启动一个新活动,因此我在彼此之上运行多个相同的活动,这是错误的。 我要执行的操作是将通知待定意图中指定的活动(如果已在运行中)移到最前面,否则将其启动。 到目前为止,我拥有该通知的意图/待定意图是 private static PendingIntent prepareIntent(Context context) { Intent intent = new Intent(context, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); } 奇怪的是,它有时起作用,有时却不起作用...我感觉我已经尝试了每种标志组合。

3
PendingIntent不发送Intent额外内容
我的MainActicity 开头RefreshService为Intent,其中有一个boolean额外的名称isNextWeek。 我的作品RefreshService会在用户点击时Notification启动MainActivity。 看起来像这样: Log.d("Refresh", "RefreshService got: isNextWeek: " + String.valueOf(isNextWeek)); Intent notificationIntent = new Intent(this, MainActivity.class); notificationIntent.putExtra(MainActivity.IS_NEXT_WEEK, isNextWeek); Log.d("Refresh", "RefreshService put in Intent: isNextWeek: " + String.valueOf(notificationIntent.getBooleanExtra(MainActivity.IS_NEXT_WEEK,false))); pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); builder = new NotificationCompat.Builder(this).setContentTitle("Title").setContentText("ContentText").setSmallIcon(R.drawable.ic_notification).setContentIntent(pendingIntent); notification = builder.build(); // Hide the notification after its selected notification.flags |= …

5
在PendingIntent上使用的“ requestCode”是什么?
背景: 我通过AlarmManager使用PendingIntent发出警报。 问题: 起初,我认为为了取消以前的警报,必须提供在启动警报之前使用的确切requestCode。 但是后来我发现我错了,正如取消API所述: 删除所有具有匹配意图的警报。任何警报,其意图与该警报相匹配(由filterEquals(Intent)定义)的任何类型的警报都将被取消。 查看“ filterEquals ”,文档说: 确定两个意图是否出于意图解析(过滤)的目的相同。也就是说,如果它们的动作,数据,类型,类和类别相同。这不会比较意图中包含的任何其他数据。 所以我不明白“ requestCode”是为了什么... 问题: “ requestCode”是用来做什么的? 如果使用相同的“ requestCode”创建多个警报该怎么办?他们会互相覆盖吗?

13
PendingIntent对于第一个通知正确运行,而对于其余通知则不正确
protected void displayNotification(String response) { Intent intent = new Intent(context, testActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK); Notification notification = new Notification(R.drawable.icon, "Upload Started", System.currentTimeMillis()); notification.setLatestEventInfo(context, "Upload", response, pendingIntent); nManager.notify((int)System.currentTimeMillis(), notification); } 该函数将被多次调用。我希望每个notification单击时都启动testActivity。不幸的是,只有第一个通知会启动testActivity。单击其余的将导致通知窗口最小化。 附加信息:函数displayNotification()位于名为的类中UploadManager。 从实例化Context传递到。功能是从功能,也UploadManager,即在运行中多次调用。UploadManageractivitydisplayNotification()AsyncTask 编辑1:我忘了提及我将String响应传递Intent intent为extra。 protected void displayNotification(String response) { Intent intent = new Intent(context, testActivity.class); intent.putExtra("response", …


4
如何在Android中以编程方式从通知栏删除通知?
任何人都知道我们如何以编程方式从应用程序中删除通知,即使用Pending intent进行调用。 我曾经使用以下方法取消通知。 AlarmManager am=(AlarmManager)getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(Display.this, TwoAlarmService.class); PendingIntent pi = PendingIntent.getBroadcast(Display.this, AlarmNumber, intent, PendingIntent.FLAG_CANCEL_CURRENT); am.cancel(pi); 但是问题是尚未从通知栏删除的已经触发的通知。 提前致谢...
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.