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

时间:2012-06-12 07:07:21

标签: android android-layout

在我的应用程序中,当我单击主页按钮时,再次当我打开应用程序时它应该来自第一个。我正在使用启动画面作为我的第一个活动。当我打开应用程序时,应用程序应该从启动画面开始。 / p>

         @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

    }

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

4 个答案:

答案 0 :(得分:1)

你可以试试这个:

 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;
  }

答案 1 :(得分:1)

尝试在清单文件

中的每个活动代码中编写此行
android:launchMode="singleTask"

答案 2 :(得分:0)

i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

之前使用startActivity(i);

答案 3 :(得分:0)

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

请注意,onResume()之后也会立即调用onCreate(),因此请保留flag值,以检查onResume()是否在onCreate()之后被调用或者在应用程序恢复时调用它。