android - 学习 Activity Intent 数据随机返回,为什么?

标签 android

我有一个媒体应用程序,它在将 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/

相关文章:

java - stopService后如何运行某些东西?

java - 使用 setIndexedQuery 获取索引数据,其中索引不是路径末尾

android - 无法为混合 Android 应用程序运行 'forcedroid create'

android - ListView 的多线程使错误的项目/根本没有项目出现

android - Activity 转换 API 不起作用

android - 如何在 firebase 身份验证中验证用户电子邮件?

android - 滚动 GridView 时保留填充条

android - 如何在 Android 的 Horizo​​ntal View Pager 实现中循环 View

安卓:java.lang.ClassNotFoundException:android.support.v4.media.TransportMediatorJellybeanMR2

android - 布局权重不起作用