Articles of android pendingintent

使用AsyncTask在后台服务中添加android进度对话框,得到致命exception

Iam从预定服务中调用Asynctask每10分钟运行一次。 运行服务时, 进度对话框从OnpreExecute获取exception。 错误 : FATAL EXCEPTION: main android.view.WindowManager$BadTokenException: Unable to add window — token null is not for an application at android.view.ViewRootImpl.setView(ViewRootImpl.java:594) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) at android.app.Dialog.show(Dialog.java:286) 编辑1: 报警pipe理器每5分钟拨打一次服务 /*Alarm manager Service for From Server*/ private void setServerFetch() { // for to Server to GPS PING Intent myIntent1 = new Intent(LoginPage.this, AlarmService.class); pendingintent1 […]

第二个操作的PendingIntent将覆盖第一个操作和contentIntent以进行通知

代码: 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)) […]

AlarmManager.AlarmClockInfo的PendingIntent如何工作?

我正在尝试使用AlarmManager.AlarmClockInfo设置警报。 这个构造函数需要花费时间和文档中描述的PendingIntent : 一个意图,可以用来显示或编辑闹钟的细节。 然后setAlarmClock( )也接受一个待定的意图,在文档中描述为: 警报closures时执行的操作 我明白通过setAlarmClock( )使用PendingIntent ,然而, AlarmClockInfo使用的PendingIntent又是如何使用它来编辑闹钟的细节呢?

Android 6.0打盹模式下的闹铃pipe理器问题

我制作了一个应用程序,一直运行到Android 6.0。 我认为这是Dozefunction,它不允许我的闹钟触发。 我使用sharedpreferences来处理选项: //ENABLE NIGHT MODE TIMER int sHour = blockerTimerPreferences.getInt("sHour", 00); int sMinute = blockerTimerPreferences.getInt("sMinute", 00); Calendar sTime = Calendar.getInstance(); sTime.set(Calendar.HOUR_OF_DAY, sHour); sTime.set(Calendar.MINUTE, sMinute); Intent enableTimer = new Intent(context, CallReceiver.class); enableTimer.putExtra("activate", true); PendingIntent startingTimer = PendingIntent.getBroadcast(context, 11002233, enableTimer, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager sAlarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); sAlarm.setRepeating(AlarmManager.RTC_WAKEUP, sTime.getTimeInMillis(), AlarmManager.INTERVAL_DAY, startingTimer); 任何线索最新错误在这里? 这是一个阻止通话的应用程序。 谢谢! 编辑:我有3个文件(更多,但…)像: MainActivity […]

Android – 为什么使用未决意图进行地理围栏

我刚刚完成了Android上的geofencing教程( http://developer.android.com/training/location/geofencing.html ),我想知道为什么地理围栏的“callback”是通过挂起的意图完成的,而不是简单的callback接口。 如果在一个活动中实现,那么通常会断开onPause()的位置客户端,所以之前添加的geofences不会在应用程序暂停/被销毁之后被跟踪,那么为什么还有待处理的意图呢? 还是我误解了?

通知打开活动,后退button被按下,主要活动被打开?

我能描述我的问题的最好方法是这样的: 通知在启动时创build(使用BroadcastReceiver )。 我的应用程序的主要活动打开,并按下主页button(应用程序仍然在后台运行,直到系统closures它)。 我拉下状态栏并按下之前在启动时创build的通知。 一些与主要活动不同的活动开始。 我按下后退button,显示主要活动。 我怎样才能防止最后一步? 我想要的后退button是回到我的位置,这是主屏幕(包含所有小部件和应用程序图标的桌面)。 我的应用程序的主要活动应该是在后台运行,为什么用后退button调用? 如果它是相关的,我的代码来创build一个通知是这样的: public void createNotification(int notifyId, int iconId, String contentTitle, String contentText) { Intent intent = new Intent(mContext, NewNoteActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra(AgendaNotesAdapter.KEY_ROW_ID, (long)notifyId); PendingIntent contentIntent = PendingIntent.getActivity(mContext, notifyId, intent, 0); Notification notification = new Notification(iconId, contentTitle, 0); notification.setLatestEventInfo(mContext, contentTitle, contentText, contentIntent); mNotificationManager.notify(notifyId, notification); 我试图添加一些更多的标志组合intent但他们都没有解决我的问题…build议?

何时使用IntentSender与PendingIntent?

Android文档描述了PendingIntent和IntentSender类,但是不清楚何时或为什么要使用IntentSender而不是PendingIntent – 事实上,大部分描述看起来都是相同的。 PendingIntent文档: 用于执行的Intent和目标操作的描述。 这个类的实例是用(…)创build的; 返回的对象可以交给其他应用程序,以便他们可以在以后代表您执行您描述的操作。 IntentSender文档: 用于执行的Intent和目标操作的描述。 返回的对象可以交给其他应用程序,以便他们可以在以后代表您执行您描述的操作。 这两个类都是sendIntent类,两个类都允许接收者使用send或sendIntent (具有几乎相同的签名)调用动作。 既然你需要一个现有的PendingIntent来创build一个IntentSender ,那么你会在什么情况下创build一个IntentSender而不是仅仅使用PendingIntent呢?

使用AlarmManager.RTCtypes计划的PendingIntent在睡眠模式下仍然被调用

以下是我用来为我的小部件设置闹钟的代码: private static void setAlarm(Context context) { Intent myIntent = new Intent(context, Widget.class); myIntent.setAction(AUTO_UPDATE); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager alarmManager = (AlarmManager) context.getSystemService(Service.ALARM_SERVICE); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); calendar.add(Calendar.SECOND, 8); alarmManager.setInexactRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), 8000, pendingIntent); } 但问题是,即使在睡眠模式下, onReceive()仍然被意图触发。 尽pipe在使用setInexactRepeating而不是setRepeating ,在睡眠模式下,呼叫之间的延迟增加到1分钟,但仍然是电池消耗。

谷歌位置API:请求位置更新与待定的意图?

我已经开始使用本教程来实现Google Location API。 我已经设法让它在我的应用程序中工作得相当好,它会以适当的时间间隔更新我的位置。现在我正在处理设备处于睡眠模式时如何更新我的位置。 根据文件 ,这种方法是要走的路: public void requestLocationUpdates (LocationRequest request, PendingIntent callbackIntent); 我的问题是,我如何设置PendingIntent,以及如何处理? 我见过如何处理其他types的意图教程,但我不知道如何将其应用于此。

Android:通知中的PendingIntent不会触发onCreate(),如果将活动带回到屏幕上

猜想我有意图标志误解。我想要做的是,我有一个广播stream应用程序,其中有两个活动(PlayerApplication和SettingsScreen)。 我有一个在后台运行的Streaming Service.class,它也包含通知(您可以在通知覆盖菜单和PlayerApplication中停止/开始播放)。 如果用户点击通知,PlayerApplicationActivity应该回到屏幕上。 一切工作正常,期望的情况下:用户打开SettingsScreenActivity – >打开NotificationOverlayMenu – >点击通知 – > PendingIntent恢复到PlayerApplicationActivity 现在,PlayerApplicationScreen在那里,但我不能点击任何东西。 我看到,我的PlayerApplication的onCreate()没有被触发,如果我从通知恢复。 但是布局看起来很好(在onCreate()中也是夸大的) 我在Service.class中使用了下面的PendingIntent: PendingIntent contentIntent = PendingIntent.getActivity( this.getApplicationContext(), //Service.class 0, new Intent(this,PlayerApplicationActivity.class) .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP), 0); 所以实际上,PendingIntent应该把Activity(如果已经运行的话)带回顶端。 我是否使用错误的意图,或者我错过了一个观点? 编辑:我在Manifest.xml中宣布launchMode android:launchMode="singleTask"