gpt4 book ai didi

android - 获取 'java.lang.IllegalArgumentException: Can' t 在运行 android 2.3.3 的设备中使用 FLAG_RECEIVER_BOOT_UPGRADE

转载 作者:行者123 更新时间:2023-11-29 14:23:27 31 4
gpt4 key购买 nike

我有一个 Activity 允许用户通过选择日期和时间来安排一个事件。我已经使用 AlarmManager 完成了它

Intent i=new Intent(context, AlarmReceiver.class);
i.putExtra("status",status);
i.putExtra("mode",mode);
PendingIntent p=PendingIntent.getBroadcast(context, id, i, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarms = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarms.set(AlarmManager.RTC_WAKEUP, sched_time, p);

在广播接收器中启动了一个新的 Activity

    @Override
public void onReceive(Context context, Intent data) {
// Start the scheduled post
String status=data.getExtras().getString("status");
int mode=data.getExtras().getInt("mode");

Intent i=new Intent(context,PostScheduled.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("status", status);
i.putExtra("mode", mode);

context.startActivity(i);
}

在模拟器中,这段代码运行良好,但在实际设备(运行 android 2.3.3)中它崩溃了

PendingIntent p=PendingIntent.getBroadcast(context, id, i, PendingIntent.FLAG_CANCEL_CURRENT);

这是堆栈跟踪

java.lang.IllegalArgumentException: Can't use FLAG_RECEIVER_BOOT_UPGRADE here
at android.os.Parcel.readException(Parcel.java:1326)
at android.os.Parcel.readException(Parcel.java:1276)
at android.app.ActivityManagerProxy.getIntentSender(ActivityManagerNative.java:2254)
at android.app.PendingIntent.getBroadcast(PendingIntent.java:230)
at com.social.autofunnystatus.ScheduleDialog.onClick(ScheduleDialog.java:158)
at android.view.View.performClick(View.java:2538)
at android.view.View$PerformClick.run(View.java:9152)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)

有人知道出了什么问题吗?

最佳答案

这是android中的一个错误。在历史上的某个时刻,这两个标志 - FLAG_ACTIVITY_NEW_TASKFLAG_RECEIVER_BOOT_UPGRADE - 获得相同的数值,因为一些 android 开发人员更改了其中一个值而没有检查它是否已被另一个人使用旗帜。最新版本(4.4)似乎已经修复了。

关于android - 获取 'java.lang.IllegalArgumentException: Can' t 在运行 android 2.3.3 的设备中使用 FLAG_RECEIVER_BOOT_UPGRADE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10228762/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com