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

10-12 05:10
查看更多