【问题标题】:Creating Home Replacement app?创建家庭更换应用程序?
【发布时间】:2013-07-02 00:01:05
【问题描述】:

我想要一个充当 Home Replacement 应用程序的应用程序。首次启动应用程序时,有几个活动可让您配置基本设置。然后进入主屏幕。在 Android Manifest 中,我添加了以下几行:

    <activity android:name="com.tabletnanny.HomeScreenMain"
        android:theme="@style/Theme"
        android:launchMode="singleInstance"
        android:stateNotNeeded="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.HOME"/>
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
    </activity>

现在我想要的是:每次用户访问此活动时,都会弹出一个框,提示您要将哪个主屏幕设置为默认值。无论每次启动应用程序时,都会弹出此消息,即使在之前的启动过程中,用户不小心选择了错误的主屏幕“始终”。我在这个主屏幕上还有一个“退出”按钮。点击“退出”按钮将再次弹出此对话框,并允许您再次选择默认主屏幕。如何在 java 代码中做到这一点?

【问题讨论】:

    标签: android android-launcher


    【解决方案1】:

    Android 让这一切变得非常简单 - 只需建立一个启动主页的意图,如下所示:

    Intent home = new Intent(Intent.ACTION_MAIN);
    home.addCategory(Intent.CATEGORY_HOME);
    

    Intent 有一个生成“Chooser”Intent 的方法。选择器意图启动一个对话框,显示所有可以响应您创建的意图的Activitys;在您的情况下,“家庭”类别:

    Intent chooser = Intent.createChooser(home, "Launcher");
    mContext.startActivity(chooser);
    

    【讨论】:

    • 这绝对是我想要的方式,似乎它几乎可以工作,我得到的唯一问题是当我点击退出按钮时,我得到一个显示“启动器”的对话框和然后“没有应用程序可以执行此操作”;你能扩展一下代码吗?
    • 是的!退出机制完美运行,我仍然在将其设置为默认主屏幕时遇到了一些麻烦,但我自己会弄乱代码,以后可能会提出问题。谢谢,这很有帮助
    【解决方案2】:

    我认为您不能强迫系统忘记用户偏好。存储用户首选项后,只有在更新应用程序或安装新启动器时才会返回。

    但是您可以强制您自己触发的意图显示应用程序选择器(“退出”按钮的解决方案):请参阅http://developer.android.com/training/basics/intents/sending.html#AppChooser

    【讨论】:

    • facebook Launcher 以某种方式做到了 - 不过我还没弄清楚是怎么回事
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多