创建家庭替换应用程序?

时间:2013-07-01 15:32:56

标签: android android-launcher

我想要一个充当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代码中做到这一点?

2 个答案:

答案 0 :(得分:1)

Android让这很容易 - 只需建立一个像这样启动家庭的意图:

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

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

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

答案 1 :(得分:0)

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

但你可以强制自己开启一个意图来显示App选择器(“退出”按钮的解决方案):见http://developer.android.com/training/basics/intents/sending.html#AppChooser