Articles of android pendingintent

在Appwidget的一个视图中使用两个pendingIntent

我有一个小部件类(扩展AppWidgetProvider),其中只有一个视图(ImageView)在小部件的布局。 当用户点击小部件时,它会更新并启动一个没有问题的活动。 此外,小部件每30分钟更新一次,并在小部件更新后启动活动。 我的问题是:如何configuration小部件更新时自动更新自动(而不是由用户单击)? 这是我的代码: public class Widget extends AppWidgetProvider { private static final String ACTION_UPDATE = AppWidgetManager.ACTION_APPWIDGET_UPDATE; @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { ComponentName cn = new ComponentName(context, Widget.class); appWidgetManager.updateAppWidget(cn, remoteView(context)); } @Override public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); if (intent.getAction().equalsIgnoreCase(ACTION_UPDATE)) { ComponentName cn = new ComponentName(context, […]

RecognizerIntent:如何将一个包添加到一个挂起的意图

我正在实施一个响应RecognizerIntent的活动。 除此之外,这个活动必须处理两个传入的附加信息,这些附加信息指定一个挂起的意图和它的 extras-bundle: EXTRA_RESULTS_PENDINGINTENT EXTRA_RESULTS_PENDINGINTENT_BUNDLE 解释文档: 如果您使用EXTRA_RESULTS_PENDINGINTENT提供PendingIntent ,结果将被添加到其捆绑中, PendingIntent将被发送到其目标。 如果您使用EXTRA_RESULTS_PENDINGINTENT提供转发意向,则还可以使用EXTRA_RESULTS_PENDINGINTENT_BUNDLE为最终意向提供附加附加信息。 search结果将被添加到该捆绑,并且组合的捆绑将被发送到目标。 我一直在寻找示例代码来展示以下内容。 从捆绑中提取PendingIntent的最佳方式是什么? 我应该这样做: (PendingIntent) extras.getParcelable(RecognizerIntent.EXTRA_RESULTS_PENDINGINTENT) 如何添加额外的PendingIntent的现有额外的一套? 如何启动修改的PendingIntent ?

Android应用程序目前的活动带来了前沿问题

我有一个基本的问题,我不认为附加任何代码片段可能有帮助。 当我们按下回家button,而前面的应用程序,我们去主页,应用程序失去了重点。 现在,我的应用程序必须在状态栏中有通知图标。 而在我的应用程序中,可能会有2-3个活动可见(对话视图中有一个在另一个之上)。 在某些情况下,当我按状态栏中的通知图标时,我不确定如何恢复这种状态。 但是,当我按主页button,然后按主屏幕中的应用程序图标,我得到一切按预期。 那么,有什么办法,我可以通过通知栏图标做同样的事情。

PendingIntent获取requestCode

我使用一个AlarmManager来启动一个服务。 当我设置AlarmManager我使用PendingIntent并使用一个唯一的requestCode,它等于我的数据库中的一个id行。 PendingIntent pendingIntent = PendingIntent.getBroadcast(SettingsActivity.this, lecture.getId(), myIntent, 0); 如何在启动时在服务中检索该ID? 我基本上只需要requestCode参数。 我想使用该ID从我的数据库检索数据,并显示在通知中。 我已经实现了所有的东西,我只需要requestCode。 有可能得到它吗? 谢谢

取消AlarmManager – PendingIntent的问题

我有一个提醒人们完成任务的应用程序。 所以有一个PendingIntent,现在用户可以在他想要的时候删除闹钟。 在这个代码中,只有一个PendingIntent用于多个用户警报,所以我很困惑取消那个特定的警报,其中的意图额外是"pill" 。 其余的警报不应被取消。 我不知道这个问题。 希望我清楚。 谢谢 Intent intent = new Intent(this, AlarmNotifyReceiver.class); intent.putExtra("Name_pill", "pill"); sender = PendingIntent.getBroadcast(this, DatabaseConstants.NOTIFICATION_ID + 1, intent, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); am.set(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(), sender); updateTheFlag(pillName[(pillName.length-1)]);

android如何比较挂起的意图

PendingIntent.FLAG_NO_CREATE的文档如下所示: 标志表示如果描述的PendingIntent不存在,则简单地返回null而不是创build它。 我的问题:用什么标准来比较PendingIntents? 我猜在引擎盖下这个标志使用PendingIntent.equals ,但我不知道该函数使用什么标准。 它使用的行动,requestCode,类别,演员(我猜不是)等? 语境: 如果我的警报尚未设置,我想要启动一个待处理意图的警报。 具体来说,我正在跟踪这个答案 。 Intent i = new Intent(applicationContext, MyService.class); i.setAction("myAction"); PendingIntent pi = PendingIntent.getService(applicationContext, /*requestCode*/0, i, PendingIntent.FLAG_NO_CREATE); if (pi != null) { AlarmManager alarmMgr = (AlarmManager)applicationContext.getSystemService(Context.AlarmService); alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, AlarmManager.INTERVAL_HOUR, AlarmManager.INTERVAL_HOUR, pi); }

如何为broadcastReceiver使用“goAsync”?

背景 从Honeycomb(API 11)开始,Android有一个允许broadcastReceiver以asynchronous方式运行的function,在假定它可以终止进程之前提供大约10秒钟的时间,使用名为“ goAsync ”的方法: 这可以通过onReceive(Context,Intent)中的应用程序来调用,以便在从该函数返回后保持广播活动。 这不会改变对广播相对响应的期望(在10秒内完成),但是允许实现将与其相关的工作移动到另一个线程,以避免由于磁盘IO而干扰主UI线程。 问题 我在很多地方search过,没有find任何示例或教程如何使用它。 不仅如此,该方法返回一个PendingIntent实例,我不知道该怎么做: 返回表示活动广播结果的BroadcastReceiver.PendingResult。 BroadcastRecord本身不再有效; 所有数据和其他交互都必须经过BroadcastReceiver.PendingResult API。 一旦广播处理完成,必须调用PendingResult.finish()方法。 这个问题 你如何使用这种方法? 它返回的PendingIntent是什么,我该怎么做?

你可以使用本地广播的未决意图?

我有兴趣使用本地广播的未决意图。 为了使自己清楚,我使用以下注册接收器和发送广播: android.support.v4.content.LocalBroadcastManager 。 我有一个本地广播接收机在一个有效的服务。 我正尝试从包含可点击的项目的自定义通知布局发送本地广播。 本地广播接收器 – 只是接收简单的动作意图。 我正在尝试这样的事情无济于事: Intent backintent = new Intent("GOTO_START_BROADCAST"); PendingIntent backIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, backintent, 0); RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification); contentView.setOnClickPendingIntent(R.id.imageView1, backIntent);

Android通知操作未被触发(PendingIntent)

我正在尝试在我的应用程序中添加一个通知操作项,这是一个音乐播放器。 当一个stream开始时,应该触发一个通知,并在通知中显示一个stream的停止button。 到目前为止,通知工作正常,我有停止行动项目的麻烦。 以下是在启动stream的服务中声明的方式: Intent stopIntent = new Intent(this, MusicPlayerNew.class); stopIntent.putExtra("STOP", "STOP"); PendingIntent stopPendingIntent = PendingIntent.getActivity(this, 0, stopIntent, PendingIntent.FLAG_UPDATE_CURRENT, null); mBuilder.addAction(R.drawable.ic_stat_stop, "Stop", stopPendingIntent); 现在在我的活动onResume() – 方法我检查与getIntent()。getStringExtra()为“停”额外,但我通过getIntent()检索的意图没有额外的设置:( 我也试图检查发送广播(我有一个广播接收器工作,从服务通信到活动) Intent stopIntent2 = new Intent(MusicPlayerNew.STOP_MEDIAPLAYER); PendingIntent stopPendingIntent2 = PendingIntent.getBroadcast(this, 0, stopIntent2, PendingIntent.FLAG_UPDATE_CURRENT); mBuilder.addAction(R.drawable.ic_stat_stop, "Stop", stopPendingIntent2); 现在这个工作,如果活动目前在前台。 如果活动在后台,停止button什么都不做:( 编辑:我有我的活动中的BroadcastReceiver作为私人课程 private class DataUpdateReceiver extends BroadcastReceiver { @Override public void onReceive(Context […]

如何通过PendingIntent将数据发送到广播?

我试图通过PendingIntent发送一些额外的数据,如: MyMessage message; //… Intent intent; SmsManager sms = SmsManager.getDefault(); intent = new Intent(Constants.SENT_PLAIN); intent.putExtra(Constants.EXTRA_RAW_ID, message.getId()); //putting long id (not -1L) PendingIntent sentPI = PendingIntent.getBroadcast(activity, 0, intent, 0); intent = new Intent(Constants.DELIVERED_PLAIN); intent.putExtra(Constants.EXTRA_RAW_ID, message.getId()); PendingIntent deliveredPI = PendingIntent.getBroadcast(activity, 0, intent, 0); sms.sendTextMessage(phoneNumber, null, message.getBody(), sentPI, deliveredPI); 然后在Broadcast试图捕捉数据: @Override public void onReceive(Context context, Intent intent) { […]