Articles of android pendingintent

Android usb枚举

我正在写一个Android USB主机应用程序,我试图枚举与平板电脑连接的设备。 我按照开发人员站点中的android USB主机文档中的代码进行操作。 我的代码如下 AndroidUSBActivity public class AndroidUSBActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); USBClass usb = new USBClass(); ArrayList deviceList = usb.GetUSBDevices(getBaseContext()); final CharSequence[] items = deviceList.toArray(new CharSequence[deviceList.size()]); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(“Select a Reader”); builder.setSingleChoiceItems(items, -1, new […]

Android:从小部件打开错误的活动

我一直在努力解决这个问题。 我有一个小部件,显示烹饪食谱的摘要。 小部件是可点击的,因此每当用户点击它时,就会打开新活动,并附上该食谱的完整描述。 问题是,有时单击窗口小部件时会打开错误的活动。 让我举一个例子: 用户点击窗口小部件并打开活动A. 用户从活动A开始活动B(例如食谱索引)。 用户从活动B开始活动C. 用户按下主页按钮。 用户再次单击窗口小部件,显示活动C而不是A 我尝试设置这三个标志的组合,这有助于解决问题的一半: openIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 通过使用上面的标志,我设法显示正确的活动(A),直到我执行以下操作: 用户从窗口小部件打开活动A. 用户移动到活动B并通过单击新配方打开活动A. 向用户显示新配方 用户单击“主页”按钮并单击窗口小部件。 显示活动A(右侧)但配方不同。 从现在开始,如果我移动到不同的活动B或C并再次单击“主页”然后再单击“窗口小部件”,则不显示活动A,而是显示在按“主页”按钮之前可见的活动A. 我希望我能够详细解释它。 我真的很感谢你的帮助,因为这件事让我发疯! 更新: 这是我的待处理内容: Intent openIntent = new Intent(context, ProfanityDefinition.class); openIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); openIntent.setData(Uri.parse(openIntent.toUri(Intent.URI_INTENT_SCHEME))); Bundle bundle = new Bundle(); bundle.putBoolean(“widgetRequest”, true); openIntent.putExtras(bundle); PendingIntent openPendingIntent = PendingIntent.getActivity(context, 0, openIntent, PendingIntent.FLAG_UPDATE_CURRENT); views.setOnClickPendingIntent(R.id.widget_content, openPendingIntent); 谢谢

无法从窗口小部件SendIntentException发送待处理的意图

我想使用以下代码从我的小部件发送广播: for (int i = 0; i < N; i++) { int appWidgetId = appWidgetIds[i]; RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); Intent x = new Intent(); if (isActive == true) { views.setImageViewResource(R.id.w_image, R.drawable.w_bild); x.setAction("de.bulling.smstalk.DISABLE"); } else { views.setImageViewResource(R.id.w_image, R.drawable.w_bild_off); x.setAction("de.bulling.smstalk.ENABLE"); } PendingIntent z = PendingIntent.getBroadcast(context, 0, x, PendingIntent.FLAG_ONE_SHOT); views.setOnClickPendingIntent(R.id.w_image, z); appWidgetManager.updateAppWidget(appWidgetId, views); } 但是,我收到此错误: E/RemoteViews(18176): […]

第二次通知无效

我尝试创建多个通知。 如果单击通知,它将链接到另一个活动。 在遵循代码之后,它会创建两行通知。 但是,当我点击第一行通知时,它无法正常工作。 只有第二个工作。 for (int i = 0; i < missionName.size(); i++) { mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); final Notification notifyDetails = new Notification(R.drawable.icon, "Mission Completed, Click Me!", System.currentTimeMillis()); notifyDetails.defaults |= Notification.DEFAULT_SOUND; notifyDetails.defaults |= Notification.DEFAULT_VIBRATE; Context context = getApplicationContext(); CharSequence contentTitle = missionName.get(i) + " is completed"; CharSequence contentText = "Please click to view […]

Android PendingIntent附加function,未被BroadcastReceiver接收

当我将附加内容传递给PendingIntent时,sendBroadcastReceiver永远不会收到该消息,因为从不调用此BroadcastReceiver的onReceive()方法。 为什么会这样? public class MainActivity extends Activity { private static String SENT = “SMS_SENT”; private static String DELIVERED = “SMS_DELIVERED”; private static int MAX_SMS_MESSAGE_LENGTH = 160; private static Context mContext; private BroadcastReceiver sendBroadcastReceiver, deliveryBroadcastReceiver; private final String DEBUG_TAG = getClass().getSimpleName().toString(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // —when the SMS has been sent— sendBroadcastReceiver […]

从通知意图中删除数据

我的启动器活动意图有问题.Snenerio是:1。向我的启动器活动发送意图forms通知服务 PendingIntent contentIntent = PendingIntent.getActivity(this, TripLoggerConstants.PENDING_TRIPS_NOTIFICATION_ID, new Intent(this, MainActivity.class).putExtra(“is_log”, true), Intent.FLAG_ACTIVITY_CLEAR_TOP); 2.在我的MainActivity中,我得到了这个意图。 代码是: if(this.getIntent().getExtras()!=null){ boolean isLogNewTripScreen = (boolean)this.getIntent().getExtras().getBoolean(“is_log”); } } 3.这项工作正常,但是当我来自通知服务时,但是当我从非通知服务启动时,意图中的数据仍然存在。如何从意图中删除该数据。

自定义TaskStack从通知中完成父活动

我在使用TaskStack进行通知时遇到问题。 我正在尝试在点击通知时保持我的应用程序的导航流程。 我的应用程序的导航样式如下: PrincipalActivity (父)→ SecondaryActivity (子) 有时,GCM服务可以推送启动SecondaryActivity通知。 PrincipalActivity的实例可能存在或不存在,因此我从TaskStack实现了一个自定义PendingIntent(见下文)。 这在PrincipalActivity暂停或关闭时有效。 当用户在前台的PrincipalActivity中点击通知时出现问题: PendingIntent调用PrincipalActivity.onDestroy()并创建丢失所有数据的新堆栈活动。 服务推送通知: Intent notificationIntent = new Intent(context, SecondaryActivity.class); TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); stackBuilder.addParentStack(SecondaryActivity.class); stackBuilder.addNextIntent(notificationIntent); PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); mNotifyBuilder.setContentIntent(pendingIntent); mNotificationManager.notify(id, mNotifyBuilder.build()); AndroidManifest.xml中 我尝试使用PendingIntent ( FLAG_UPDATE_CURRENT , FLAG_ONE_SHOT )的标志,并尝试使用不同的launch_mode进行清单中的活动( singleTask , singleTop , singleInstance ),但没有运气。 当父级已经在前台并且不丢失数据时,如何使用activity和parent创建上述自定义TaskStack ? (理想情况下,重用堆栈中的活动?)

重新启动应用程序失败android

我有一个应用程序,我从服务生成很多通知。对于每个通知我有待处理的intent.Also按主页按钮停止我的整个应用程序和服务使用以下代码 System.exit(0); 启动待处理的意图成功,但按下主页按钮后,如果我再次重新启动应用程序,它只给出一个黑屏并退出..有趣的是,如果我再次单击应用程序图标,它会重新启动成功..如果活动开始没有使用挂起的意图,按下主页按钮并重新启动一切工作正常.. 应该是什么原因? 任何帮助将不胜感激 ..

Android – 如何打开推送通知深层链接意图,当关闭时,返回到主屏幕?

我创建了一个接收器来接收和显示推送通知 – 当用户按下推送通知时,它会在我的应用程序中打开一个深层链接。 问题是,当用户按下“后退”时,他不会退回到主屏幕,而是在应用程序backstack之前进入我的应用程序打开的任何屏幕 – 即使应用程序在他按下之前被最小化通知。 我需要的行为是让用户在主屏幕上,让他打开通知面板,按下我的通知,进入我的应用程序的深层链接页面,当他按下后退按钮时 – 我想要他再次退出到主屏幕。 我不希望他以任何方式与主要应用程序的backstack交互。 我已经在推送通知中尝试了pendingIntent的多种标志组合。 一切从FLAG_ACTIVITY_TASK_ON_HOME到FLAG_ACTIVITY_NEW_TASK到FLAG_ACTIVITY_SINGLE_TOP等等。没有任何组合似乎能给我我想要的东西 – 在每一个案例中,打开与应用程序最小化的深层链接将始终返回到应用程序历史记录中的下一页后退按钮。 我怎么解决这个问题? 示例代码: Intent notificationIntent = new Intent(this, DeepLink.class); notificationIntent.setData(Uri.parse(url)); notificationIntent.addFlags(Intent.FLAG_ACTIVITY_TASK_ON_HOME); notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent pendingIntent = PendingIntent.getActivity(getBaseContext(), 1, notificationIntent, 0);

如何在android中报警时从挂起的意图中获取requestCode

是否可以在Receiver类或Activity Class中获取requestCode? 这是我未决的意图 alarmMgr= (AlarmManager)getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(this, BroadcastReceiver_Class.class); /*intent.putExtra(“alarm_time_minutes”, minutes);*/ pendingIntent = PendingIntent.getBroadcast(this, requestCode, intent,requestCode); alarmMgr.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent); 提前致谢..