当发生这种情况时,我想创建状态栏通知并在更新时提醒用户.当用户单击通知时,活动应重新排序到前面并在屏幕上显示,同时在列表底部显示新项目.
所以我写了一个通知管理器,在用户设备上显示:
private static voID createNotification(String Title,String text,String largeIcon,String itemdID,Context mCOntext) {Bitmap ic = BitmapFactory.decodeResource(mContext.getResources(),R.drawable.ic_launcher);Intent intent = new Intent(mContext,MyFragmentActivity.class);intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);intent.putExtra(MyFragmentActivity.SELECTED_ITEM_List_ID,DatabaseHelper .getItemListByID(ListID).getID());PendingIntent pIntent = PendingIntent.getActivity(mContext,intent,0);Notification noti = new NotificationCompat.Builder(mContext) .setContentTitle(Title).setContentText(text) .setSmallicon(R.drawable.ic_launcher).setContentIntent(pIntent) .setautoCancel(true).setLargeIcon(ic).build();noti.defaults |= Notification.DEFAulT_liGHTS;noti.defaults |= Notification.DEFAulT_VIBRATE;noti.sound = Uri.parse("androID.resource://" + mContext.getPackagename() + "/" + R.raw.user_gets_message);notificationmanager nm = (notificationmanager) mContext .getSystemService(Context.NOTIFICATION_SERVICE);nm.notify(0,noti);}
唯一的问题是它似乎忽略了我的旗帜,当我导航到片段活动,然后转到我的主屏幕(应用程序的背景),并获得推送,当我点击通知时,应用程序创建一个新的活动(或片段)并显示新的一个而不是原始的新数据. (这意味着单击后退按钮可从历史堆栈中打开相同的活动(或片段).
我重写了onNewIntent和活动的所有生命周期方法,我看到在后面单击时,调用的方法是MyFragmentActivity.onStart和MyFragmentActivity.onResume.
关于我做错了什么的任何想法?
解决方法 我假设问题是您将活动启动模式设置为singleTask,它将标志 FLAG_ACTIVITY_BROUGHT_TO_FRONT添加到您的意图,并导致标志FLAG_ACTIVITY_REORDER_TO_FRONT被忽略.您需要将启动模式更改为单顶.
总结以上是内存溢出为你收集整理的android – FLAG_ACTIVITY_REORDER_TO_FRONT被忽略了全部内容,希望文章能够帮你解决android – FLAG_ACTIVITY_REORDER_TO_FRONT被忽略了所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)