还有一个 android 以编程方式显示主屏幕
Yet another android show home screen programmatically
我想制作一个以切换到主屏幕为唯一目的的应用程序(参见背景故事)。我不知道在其他phones上的行为,但在荣耀8上,先点击主屏幕按钮切换到之前的主屏幕,然后重新点击主屏幕按钮切换到默认主屏幕。抱歉,我不知道区分主屏幕和 "home-home screen" 的技术术语,带有高亮房屋的主屏幕。单击主屏幕按钮无法访问此主屏幕。
我现在有一个可行的解决方案,但它有两个主要的外观缺陷:
由于荣耀8需要两次点击主屏幕按钮,因此在源代码中实现了两次。因为动画我还需要延迟:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
//Came with the hellow world app and apparently cannot be removed
super.onCreate(savedInstanceState);
//First "virtual click" of home button
startActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME));
//Delay to allow the animation to complete
try {
Thread.sleep(800);
} catch (InterruptedException e) {
//Not really doing anything clever
}
//Second "virtual click" of home button
startActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME));
//Close the app. (I know, it's deprecated)
this.finishAffinity();
}
}
这不是一个非常优雅的解决方案。直接转到 "home-home screen" 会更精简,但如果有解决方案,很难找到如何转到主屏幕的大量答案。
- 当应用程序启动时,应用程序 window 在启动显示主屏幕的过程之前打开。因此屏幕上出现闪烁 - 也不是很优雅。应用程序无法在后台启动吗?
任何朝着正确方向的推动都会受到赞赏。
背景故事:
我有荣耀8,我想配置单击智能按钮显示主屏幕。这不是一个选项,但该按钮可以启动显示主屏幕的应用程序。因为,phone解锁后,谁会想直接跳转到信息最多的页面呢?
好吧,所以我还没有解决post中实际的两个问题,这是与编程相关的。但是,我已经解决了我想做的事情(参考背景故事)。
基本上我所做的就是安装 tasker 和 tasker app factory。在tasker中,我做了一个显示主屏幕的任务。同样在这里它需要执行两次才能转到"home-home screen"。在两者之间添加 100 毫秒的延迟。看起来很光滑。没有 windows 弹出,从你所在的任何应用程序到主屏幕,然后它滑到 "home-home screen",这是一个很好的平滑过渡。导出此任务并将智能按钮配置为 运行 单击智能按钮时的此项。
我想制作一个以切换到主屏幕为唯一目的的应用程序(参见背景故事)。我不知道在其他phones上的行为,但在荣耀8上,先点击主屏幕按钮切换到之前的主屏幕,然后重新点击主屏幕按钮切换到默认主屏幕。抱歉,我不知道区分主屏幕和 "home-home screen" 的技术术语,带有高亮房屋的主屏幕。单击主屏幕按钮无法访问此主屏幕。
我现在有一个可行的解决方案,但它有两个主要的外观缺陷:
由于荣耀8需要两次点击主屏幕按钮,因此在源代码中实现了两次。因为动画我还需要延迟:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { //Came with the hellow world app and apparently cannot be removed super.onCreate(savedInstanceState); //First "virtual click" of home button startActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME)); //Delay to allow the animation to complete try { Thread.sleep(800); } catch (InterruptedException e) { //Not really doing anything clever } //Second "virtual click" of home button startActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME)); //Close the app. (I know, it's deprecated) this.finishAffinity(); }
}
这不是一个非常优雅的解决方案。直接转到 "home-home screen" 会更精简,但如果有解决方案,很难找到如何转到主屏幕的大量答案。
- 当应用程序启动时,应用程序 window 在启动显示主屏幕的过程之前打开。因此屏幕上出现闪烁 - 也不是很优雅。应用程序无法在后台启动吗?
任何朝着正确方向的推动都会受到赞赏。
背景故事:
我有荣耀8,我想配置单击智能按钮显示主屏幕。这不是一个选项,但该按钮可以启动显示主屏幕的应用程序。因为,phone解锁后,谁会想直接跳转到信息最多的页面呢?
好吧,所以我还没有解决post中实际的两个问题,这是与编程相关的。但是,我已经解决了我想做的事情(参考背景故事)。
基本上我所做的就是安装 tasker 和 tasker app factory。在tasker中,我做了一个显示主屏幕的任务。同样在这里它需要执行两次才能转到"home-home screen"。在两者之间添加 100 毫秒的延迟。看起来很光滑。没有 windows 弹出,从你所在的任何应用程序到主屏幕,然后它滑到 "home-home screen",这是一个很好的平滑过渡。导出此任务并将智能按钮配置为 运行 单击智能按钮时的此项。