gpt4 book ai didi

android - 为什么说PendingIntent.getBroadcast()中的requestCode没有被使用?

转载 作者:太空狗 更新时间:2023-10-29 14:22:11 24 4
gpt4 key购买 nike

documentation for PendingIntent声明在 PendingIntent.getBroadcast() 中,requestCode 参数“当前未使用”。但是,我做了一些非常详尽的测试,设置不同的 requestCode 非常明显地改变了程序的行为(并且设置不同的 requestCode 似乎是一种普遍接受的区分方法警报的 Intent )。

很明显 requestCode 被使用的事实是一个有被“修复”风险的错误吗?或者我可以继续使用它来区分我的 PendingIntents 吗?

一些背景:

我在主 Activity 中使用以下代码为 onCreate 设置了一个测试应用程序:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, MyAlarmReceiver.class);
intent.putExtra("text", "text one");
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar time = Calendar.getInstance();
time.setTimeInMillis(System.currentTimeMillis());
time.add(Calendar.SECOND, 1);
alarmMgr.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pendingIntent);

intent = new Intent(this, MyAlarmReceiver.class);
intent.putExtra("text", "text two");
pendingIntent = PendingIntent.getBroadcast(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
time.setTimeInMillis(System.currentTimeMillis());
time.add(Calendar.SECOND, 10);
alarmMgr.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pendingIntent);

}

还有一个非常简单的AlarmReceiver:

public class MyAlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, intent.getStringExtra("text"), Toast.LENGTH_SHORT).show();
}

}

然后我尝试为 PendingIntents 设置不同的标志和 requestCodes。这些是结果:

https://docs.google.com/spreadsheet/ccc?key=0AnqelXkzmAL0dDNYeVEyekJyRkV1VDZNVVIyQTJkdmc#gid=0

最佳答案

requestCode 绝对被使用并且已经使用了很长一段时间。 Android 文档已过时并且已经存在了很长一段时间。检查 AOSP 源以确认是否需要。

关于android - 为什么说PendingIntent.getBroadcast()中的requestCode没有被使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15694364/

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