Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 单击主页按钮时如何从第一个开始启动应用程序_Android_Android Layout - Fatal编程技术网

Android 单击主页按钮时如何从第一个开始启动应用程序

Android 单击主页按钮时如何从第一个开始启动应用程序,android,android-layout,Android,Android Layout,在我的应用程序中,当我单击“主页”按钮时,当我再次打开应用程序时,它应该来自第一个。我的第一个活动是启动屏幕。当我打开应用程序时,应用程序应该从启动屏幕开始 @Override public void onAttachedToWindow() { super.onAttachedToWindow(); this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);

在我的应用程序中,当我单击“主页”按钮时,当我再次打开应用程序时,它应该来自第一个。我的第一个活动是启动屏幕。当我打开应用程序时,应用程序应该从启动屏幕开始

         @Override
    public void onAttachedToWindow() {
        super.onAttachedToWindow();
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);           
    }
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

      if(keyCode == KeyEvent.KEYCODE_HOME)
       {
        Log.i("Home Button","Clicked");


        onPause();
       }

   return false;



      }
    protected void onPause() {
         super.onPause(); 
        Intent i=new Intent(H2.this,HomeexampleActivity.class);
        startActivity(i);
        // Start your first Activity as you would normally do

    }

我通过覆盖暂停方法尝试了这种方法,但它不起作用。请帮助我如何解决此问题

使用
I.setFlags(Intent.FLAG\u ACTIVITY\u CLEAR\u TOP)之前<代码>起始触觉(i)

您应该在
onResume()
中包含该代码,而不是在
onPause()
中。因为,当您单击主页按钮时,会调用
onPause()
。但是当您恢复应用程序时,会调用
onResume()
。因此,如果要将应用程序重定向到从头开始,请在所有
活动
类中的
onResume()
方法中启动第一个
活动

请记住,
onResume()
也会在
onCreate()
之后立即调用一次,因此请保留一个
标志
值,以检查您的
onResume()
是在
onCreate()
之后调用的,还是在应用程序恢复时调用的。

您可以尝试以下操作:

 Boolean hasGone = false;
  @Override
 void onResume() {
  super.onResume();  
  if(hasGone){    
      Intent intent = new Intent(H2.this, HomeexampleActivity.class);
      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
      startActivity(intent);
  }
 }

 @Override
 void onPause() {
     super.onPause(); 
     hasGone = true;
  }

尝试在清单文件中的每个活动标记中写入这一行

android:launchMode="singleTask"

onPause()
中,
super.onPause()
应该是第一个语句。我也用这种方法尝试过,但没有找到解决您问题的方法。应该是这样的。保持这种方式。尝试完成此当前活动,就像(!isFinishing()&&&&&{finish();}如果我使用暂停方法,我正在单击按钮,这些操作不起作用。我也尝试使用停止按钮,但主页按钮与后退按钮一样起作用。请建议我如何解决此问题。不需要暂停方法。我相信没有。因为,正如我所说,当您暂停
活动时,
onPause()
被调用。但你想做的是当你继续你的
活动时必须做的事情。因此,
onResume()
是正确的选择。我正在点击按钮,而不是进入下一页。您是否执行了我告诉您的
标志检查?请记住,
onResume()
也在
onCreate()之后调用。我想这可能是你遇到麻烦的原因。在我的应用程序中,我有三个活动home1,h1,h2.主页中的按钮1当我单击它时,它应该转到h1,但由于“继续”,它不会转到h1。感谢您的帮助,主页按钮工作正常,但如果我单击“退出”,它不会转到上一页,而是来自我的应用程序中的第一页,即启动屏幕。@user1083266:我已经测试了我的代码,当我单击后退键(如escape)时,它工作得很好。您已经从上面的代码中删除了onKeyDown(调用onPause())了吗?非常奇怪,因为我测试了这段代码。当您进入H2活动时,按back键返回主页ExampleActivity?你能更新名为“活动”的订单吗?Splashscree->homeactivity->h1->h2这是我的订单clases@user1083266:我不知道你的问题出在哪里,因为这段代码在我的模拟器上工作。也许你应该在你的问题中更新H2活动的完整源代码,那么我可以帮你。