【问题标题】:App to set as Launcher应用程序设置为启动器
【发布时间】:2014-11-05 11:49:32
【问题描述】:

我做了什么:我制作了一个自定义启动器,它在加载时实际运行/设置为主屏幕启动器。它还出现在已安装的启动器列表中,这意味着到目前为止一切都很好。

我想要什么:但是,当我启动/将我的应用程序设置为启动器并按返回按钮时,它会转到先前设置的启动器屏幕。
我猜它不应该是这样的。它应保持设置为设备的家庭/默认启动器。

我的代码添加:
在我的清单中,我添加了以下内容:

 <activity
        android:name=".Main"
        android:launchMode="singleTask"
        android:clearTaskOnLaunch="true"
        android:stateNotNeeded="true"
        android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>

            <!-- These two lines are setting it as a launcher-->
            <category android:name="android.intent.category.HOME"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>  

知道如何实现我的目标吗?

【问题讨论】:

  • “我猜不应该是这样的”——是的,应该这样。仅仅因为你是现在主屏幕并不会改变旧主屏幕是你开始的事实,因此它在后台堆栈上。您的论点类似于说“我将此网页设置为浏览器的主页,那么为什么 BACK 按钮会将我带回上一个网页?” “知道如何实现我的目标吗?” -- 重启。
  • @CommonsWare.. 大多数启动器都在做同样的事情.. 我的意思是当他们启动时,然后如果我们按下返回按钮,那么他们不会进入前一个启动器屏幕.. 他们仍然留在他们自己的自定义屏幕上。这就是我想要创造的。

标签: android launcher


【解决方案1】:

当然欢迎您拦截 Activity 中的 BACK 按钮,方法是覆盖 onBackPressed(),并通过简单地不链接到超类来防止它破坏 Activity。

【讨论】:

    【解决方案2】:

    重写 onKeyDown(),让它不做任何事情。

    @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_BACK) {
                //do nothing!
                return true;
            }
        }
    

    【讨论】:

    • Man.. 它的简单注释行“super.onBackPressed();”在默认的 onBackPressed 方法中.. 没有像你这样的科学实验.. 做起来很简单!!
    猜你喜欢
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    相关资源
    最近更新 更多