我有一个媒体应用程序,它在将 Intent 发送到具有以下 Intent 附加功能的播放器 Activity 时开始播放;数据“音乐路径”并输入“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/