Articles of android pendingintent

将意图额外传递给android广播接收器

我创建了一个AlarmReceiver类,用作警报的广播接收器。 问题是我需要从将类警报设置到广播接收器类的类中发送一些值。 setAlarmManager.java Intent i = new Intent(mContext, AlarmReceiver.class); i.putExtra(KEY_ROWID, (long)taskId); PendingIntent pi = PendingIntent.getBroadcast(mContext,taskId_int,i,PendingIntent.FLAG_ONE_SHOT); mAlarmManager.set(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), pi); 我需要在alarmreceiver类中从intent获取KEY_ROWID。 我怎样才能做到这一点? AlarmReceiver类如下所示。 public class AlarmReceiver extends BroadcastReceiver { public static final String ALARM_ALERT_ACTION =”com.android.alarmclock.ALARM_ALERT”; public static final String ALARM_INTENT_EXTRA = “intent.extra.alarm”; @Override public void onReceive(Context context, Intent intent) { //Here I need the values from intent […]

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

我有一个基本问题,我不认为附加任何代码片段可能会有所帮助。 当我们在应用程序位于前面时按下主页按钮时,我们会转到主页并且应用程序失去焦点。 现在,我的应用程序必须在状态栏中有通知图标。 就像在我的应用程序中一样,有可能显示2-3个活动(在对话视图中一个在另一个上面)。 在某些情况下,当我按状态栏中的通知图标时,我不确定如何恢复这种状态。 但是,当我按下主页按钮,然后按主屏幕中的应用程序图标时,我得到了所有内容。 那么,有什么方法可以用通知栏图标做同样的事情。

第二个操作的PendingIntent会覆盖第一个操作和contentIntent for Notification

代码: int id = 0; NotificationCompat.Builder builder = new NotificationCompat.Builder(context) .setContentTitle(context.getString(R.string.notification_on_the_move_gps_title)) .setContentText(context.getString(R.string.notification_on_the_move_text)); builder.setStyle(new NotificationCompat.BigTextStyle().bigText(context.getString(R.string.notification_on_the_move_gps_big_text))); Intent mainIntent = new Intent(context, MainActivity.class); Intent turnOffIntent = new Intent(context, MainActivity.class); turnOffIntent.putExtra(MainApp.KEY_TURN_OFF_NOTIFICATION_ID, id); TaskStackBuilder mainBuilder = TaskStackBuilder.create(context); mainBuilder.addParentStack(MainActivity.class); mainBuilder.addNextIntent(mainIntent); PendingIntent mainPendingIntent = mainBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(mainPendingIntent); TaskStackBuilder turnOffBuilder = TaskStackBuilder.create(context); turnOffBuilder.addParentStack(MainActivity.class); turnOffBuilder.addNextIntent(turnOffIntent); PendingIntent turnOffPendingIntent = turnOffBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); builder .setSmallIcon(R.drawable.ic_stat_notification) .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher)) […]

如何从PendingIntent获取Intent

我可以从PendingIntent获取Intent吗? 这是场景: 我创建一个Intent (让我们称之为myIntent ) 我把一些额外的信息用字符串(称之为myInfo ) 我使用myIntent创建了一个PendingIntent ( myPendingIntent ) 我使用AlarmManager和myPendingIntent设置闹钟 在稍后阶段,我使用PendingIntent.getBroadcast获取PendingIntent.getBroadcast 那时我想从myIntent中读取myInfo ,它位于myPendingIntent 这可能吗? 通过浏览谷歌,我接近结论,这是不可能的。

获取有关PendingIntent的Intent的详细信息

我想知道是否有可能从我自己没有创建的PendingIntent中获取更多信息。 更确切地说:是否有可能以某种方式检索PendingIntent的原始Intent ? 我不需要执行它,但想打印它的内容。 查看PendingIntent的代码,它显示了一个隐藏的方法: /** @hide */ public IIntentSender getTarget() { return mTarget; } 然而,这个IIntentSender也是隐藏的,与Binder和更多IPC(我猜)相关的东西有关。 不那么容易。 有任何想法吗?

如何使用待定意图启动新活动

任何人都可以说如何使用待定意图启动新活动,并使用待定意图传递值。 提前致谢。

Android – 清除任务标志不适用于PendingIntent

我有一个A> B> C的任务堆栈。我目前在C上,然后我按下主页按钮。 我收到通知,意图带我去活动A.我按下通知,我在A但是如果我按回去,我会去C,然后是B,然后是A. 我正在设置我的PendingIntent。 有什么明显错误吗? final Intent notificationIntent = new Intent(mContext, ActivityA.class); notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent contentIntent = PendingIntent.getActivity(myContext, 0, notificationIntent, 0); 编辑1: 我在这里尝试了这个建议: 清除任务中的所有活动? notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); 但我仍然得到相同的结果。 我的活动A在我的应用程序任务堆栈中开始,我按回去C,然后是B,然后是A再次。 我开始认为这在Android中是不可能的,或者在使用待处理的意图时是不可能的。 编辑2:这不是需要什么标志的问题。 更多的问题可能是错误的,标志似乎没有效果。

为什么我的android报警管理器会立即触发?

我正在按照示例代码每10秒发送一次更新通知。 代码如下,它位于AppWidgetProvider的UpdateService中。 如果我放一个Thread.sleep(10*1000); 我可以看到我的服务循环的预期行为。 我显然有一些根本错误的东西会立即触发。 它应该是一个警报的PendingIntent ,它将向我的监听器广播更新。 long nextUpdate = 10*1000; Log.d(TAG, “Requesting next update in ” + nextUpdate + ” msec.” ); Intent updateIntent = new Intent(ACTION_UPDATE_ALL); updateIntent.setClass(this, UpdateService.class); PendingIntent pendingIntent = PendingIntent.getService(this, 0, updateIntent, 0); // Schedule alarm, and force the device awake for this update AlarmManager alarmManager = (AlarmManager)getBaseContext().getSystemService(Context.ALARM_SERVICE); alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), nextUpdate, […]

Android:使用Context.startService和PendingIntent.getService启动服务

Context.startService Intent intent = new Intent(context, MyService.class); context.startService(intent); PendingIntent.getService Intent intent = new Intent(context, MyService.class); PendingIntent pi = PendingIntent.getService(context, 0, intent, 0); pi.send(); 问题 您何时可以使用Context.startService与PendingIntent启动服务? 你为什么要用另一个呢?

AlarmManager,BroadcastReceiver和Service无法正常工作

我正在重构一些代码,以便我的应用程序每天在给定时间从网站提取数据。 从我的研究来看,似乎AlarmManager是最合适的方法。 我一直关注的教程是: http : //mobile.tutsplus.com/tutorials/android/android-fundamentals-downloading-data-with-services/ 到目前为止, AlarmManager和BroadcastReceiver似乎正在工作,但是Service似乎永远不会启动(即onStartCommand似乎没有被调用) 以下是我到目前为止的代码的重要摘要: MyActivity.java private void setRecurringAlarm(Context context) { Calendar updateTime = Calendar.getInstance(); updateTime.setTimeZone(TimeZone.getDefault()); updateTime.set(Calendar.HOUR_OF_DAY, 20); updateTime.set(Calendar.MINUTE, 30); Intent downloader = new Intent(context, AlarmReceiver.class); downloader.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, downloader, PendingIntent.FLAG_CANCEL_CURRENT); AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); // should be AlarmManager.INTERVAL_DAY (but changed to 15min for testing) alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, updateTime.getTimeInMillis(), […]