【问题标题】:Persisting Android Launch Intents?持续的 Android 启动意图?
【发布时间】:2012-03-20 10:15:20
【问题描述】:

我正在创建一个自定义首选项,以记住用户想要从可能性列表中运行的活动。 (有效地实现了选择器的“当你看到这种意图时总是启动这个活动”,但要特别记住我的特定应用程序的结果,而不是系统范围的。)

我得到一个可能的活动列表,如下所示:

    Intent myIntent = new Intent();
    myIntent.setAction(Intent.ACTION_SEND);
    myIntent.setType("text/plain");    
    myIntent.putExtra(Intent.EXTRA_TEXT, "Probe text");

    PackageManager manager = getContext().getPackageManager();
    List<ResolveInfo> infoList = manager.queryIntentActivities(myIntent,PackageManager.MATCH_DEFAULT_ONLY);

...生成ResolveInfos 列表。

我的问题是,一旦我的用户选择了其中之一,将其作为偏好坚持的最佳方式是什么?也就是说,我应该在我的 SharedPreferences 中写入什么(如果可能,在单个项目中),以及如何在我的应用程序的下一次运行中读取它并触发相应的 Intent?

【问题讨论】:

    标签: android android-intent sharedpreferences


    【解决方案1】:

    好吧,您可以在Intent 上调用toUri() 将其转换为Uri,然后您可以通过标准toString() 将其转换为String。要反转该过程,请使用Intent.parseUri()String 解析为Intent

    但是,您需要添加足够的保护来应对各种可能性,例如:

    • 用户删除了应用
    • 用户升级了应用,应用不再支持你保存的Intent

    另外,请注意您粘贴探针的位置(文本)。 :-)

    【讨论】:

    • 谢谢,这似乎运作良好。我会小心删除/更改的应用程序和我的探针:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-28
    • 1970-01-01
    相关资源
    最近更新 更多