我有一个媒体应用程序,当将 Intent 发送给播放器 Activity 并带有以下 Intent 附加功能时,该应用程序将开始播放;数据“音乐的路径”,然后键入“mime/音频格式”。
我在执行玩家 Activity 开始播放时拾取 Intent 数据,并从 Intent 中删除传递的额外内容,以避免在翻转屏幕或将 Activity 带回到前台后再次发出相同的请求。
这是我处理 Intent 的方式:
final String data = getIntent().getDataString();
final String type = getIntent().getType();
// start playback
requestPlay( data, type );
// remove intents because they are needed only once per call!
this.getIntent().setDataAndType(Uri.parse(""), "");
this.getIntent().removeExtra("data");
this.getIntent().removeExtra("type");
我遇到的问题是,我很少会随机打开应用程序,当它在播放器 Activity 中恢复时, Intent 将包含先前的额外数据并开始播放...这让我和我的用户都感到恼火。 ..
任何人都有任何想法清除 Intent 数据的最佳方法是什么?由于某些原因,ActivityManager可能会保留此数据存储...?
谢谢!
-乔纳
最佳答案
我的解决方案:
Bundle mExtrass = null;
getIntent().replaceExtras(mExtrass);
这样就清除了多余的数据。
关于android - 学习 Activity Intent 数据随机返回,为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5032098/