Articles of android pendingintent

Android Notification重新启动应用但想要恢复

嗨,我已经能够显示我的活动的通知,当用户点击通知时,应用程序重新启动。 但是我只是希望它重新出现而不是重新启动。 例如。 它是一个Web应用程序,我希望它在用户选择通知时出现在前面。但是不刷新网页。 我可以捕获这个意图还是我发错了意图? 通常,如果我按下主页按钮并单击应用程序图标,应用程序就会出现并且不会刷新/重新启动。 所以这就是我想要的行为。 有任何想法吗 ? String ns = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns); //2.Instantiate the Notification int icon = R.drawable.notification_icon; CharSequence tickerText = “My App”; // temp msg on status line long when = System.currentTimeMillis(); Notification notification = new Notification(icon, tickerText, when); notification.flags |= Notification.FLAG_ONGOING_EVENT; //3.Define the Notification’s expanded message […]

取消PendingIntent

在AppWidgetProvider使用PendingIntent时,我使用以下代码: views.setOnClickPendingIntent( viewId, PendingIntent.getBroadcast( context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT ) ); 因此,目前没有对getBroadcast方法返回的PendingIntent的引用。 在特定情况下,我现在想要取消PendingIntent。 有没有办法从视图中获取PendingIntent? 或者是之后通过保持对它的引用来调用PendingIntent的cancel方法的唯一方法?

你可以使用localbroadcasts的待定意图吗?

我有兴趣使用本地广播的待定意图。 为了清楚起见,我使用以下命令注册接收器并发送广播: 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中停止警报

在我的主要活动中有一个按钮。 在它的onclick监听器我调用function来设置闹钟。闹钟正在工作,但我无法阻止它。可以帮助我一些人 MainActivity.java public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.button1).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { setalarm(); } }); } private void setalarm() { Calendar cal=Calendar.getInstance(); // cal.set(Calendar.MONTH,6); // cal.set(Calendar.YEAR,2013); // cal.set(Calendar.DAY_OF_MONTH,12); cal.set(Calendar.HOUR_OF_DAY,18); cal.set(Calendar.MINUTE,32); Intent intent = new Intent(this, Mote.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 1253, […]

android如何比较未决意图

PendingIntent.FLAG_NO_CREATE的文档内容如下: 指示如果描述的PendingIntent尚不存在的标志,则只返回null而不是创建它。 我的问题:用什么标准来比较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); }

停止Android alarmmanager的setrepeat

我已经创建了警报,如下所示 Intent intent = new Intent(this, Areceiver.class); PendingIntent sender = PendingIntent.getBroadcast(this, 1234567, intent, 0); AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); am.setRepeating(AlarmManager.RTC_WAKEUP, timenow, 3000, sender); 我创建了一个按钮来停止闹钟。 在onclick方法中,我编写了以下代码 Intent intentstop = new Intent(this, Areceiver.class); PendingIntent senderstop = PendingIntent.getBroadcast(this, 0, intentstop, 0); AlarmManager alarmManagerstop = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManagerstop.cancel(senderstop); 但工作并没有停止。 可能是什么问题?

是否可以使用相同的requestCode和不同的附加function创建多个PendingIntents?

我正在使用AlarmManager来安排1到35个警报之间的任何位置(取决于用户输入)。 当用户请求安排新警报时,我需要取消当前警报,因此我使用在finalvariables中定义的相同requestCode创建所有警报。 // clear remaining alarms Intent intentstop = new Intent(this, NDService.class); PendingIntent senderstop = PendingIntent.getService(this, NODIR_REQUESTCODE, intentstop, 0); am.cancel(senderstop); // loop through days if (sched_slider.getBooleanValue()) for (int day = 1; day < 8; day++) { if (day == 1 && sun.isChecked()) scheduleDay(day); if (day == 2 && mon.isChecked()) scheduleDay(day); if (day == 3 && […]

每次在Android中创建新的待定意图

如何每次创建待处理的意图? 目前,我现有的待定意图将被替换为新的意图。 我尝试使用FLAG_ONE_SHOT以及CANCEL_CURRENT但它没有用。

如何通过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) { […]

未触发Android通知操作(PendingIntent)

我正在尝试在我的应用程序中添加通知操作项,这是一个音乐播放器。 启动流时,应触发通知,并在通知中显示流的停止按钮。 到目前为止通知工作正常,我遇到了停止操作项目的问题。 以下是在启动流的服务中声明它的方式: 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()检查“STOP”额外,但我通过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); 现在,如果活动当前位于前台,则此function正常。 如果活动在后台,则停止按钮不执行任何操作:( 编辑:我在我的Activity中将BroadcastReceiver作为私有类 private class DataUpdateReceiver extends BroadcastReceiver { @Override public void onReceive(Context […]