【问题标题】:How to programmatically launch a specific home page in android如何以编程方式在android中启动特定主页
【发布时间】:2011-05-18 01:40:08
【问题描述】:

我希望能够在我的应用中启动主屏幕的特定页面,有什么方法可以做到这一点吗?

以下是启动主屏幕的典型方法,但我没有看到有关添加屏幕页面或索引值的任何内容。

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);

【问题讨论】:

    标签: android android-intent launcher homescreen


    【解决方案1】:

    不使用默认主屏幕。
    隐藏在Launcher Activity 源(https://android.googlesource.com/platform/packages/apps/Launcher/+/master/src/com/android/launcher/Launcher.java#822)中的是这段代码(见第 822 行):

    if (!mWorkspace.isDefaultScreenShowing()) {
        mWorkspace.moveToDefaultScreen();
    }
    

    所以无法指定具体的页面。

    【讨论】:

    • 是的,这是我后来发现的其他帖子中的想法。我必须构建自己的启动器来添加这个简单的功能。我想到的解决方法是更改​​默认屏幕,这可能吗?到目前为止,我也没有找到任何这方面的信息。但我可以做的是更改默认屏幕,启动主页,然后将其重新设置。一个弱的解决方法,但它会做我想做的事
    • 好吧,看看android.git.kernel.org/?p=platform/packages/apps/…,您会注意到默认屏幕是硬连线的:mDefaultScreen = a.getInt(R.styleable.Workspace_defaultScreen, 1);(见第 131 行)。所以你可能不走运。有一个snapToScreen 方法,但它是包私有的,你可能会花很多时间弄清楚如何向它发送消息。是的,它只有在用户不使用自定义主屏幕应用程序时才有效。
    【解决方案2】:

    我不知道如何启动主屏幕的特定“页面”。不过,我想回答这个问题,因为我认为您没有考虑到一些事情:用户可能将不同的应用程序设置为他们的家。例如,我使用 SlideScreen 应用程序作为我的主应用程序,它没有不同的“页面”。

    我建议寻找一种不同的方式来完成你想要的事情,除非你只是打算在自己的设备上使用该应用并且不觉得你会使用不同的应用作为你的家.

    【讨论】:

      猜你喜欢
      • 2011-07-17
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多