0

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

         @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

4 回答 4

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;
  }
于 2012-06-12T08:17:50.707 回答
1

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

android:launchMode="singleTask"
于 2012-06-12T08:21:08.053 回答
0

i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);之前使用startActivity(i);

于 2012-06-12T07:11:54.193 回答
0

您应该在onResume()not in 中有该代码onPause()。因为,当您单击主页按钮时,onPause()会调用。但是当您恢复您的应用程序时,onResume()会调用它。因此,如果您想重定向您的应用程序以重新开始,请在所有类中启动您的 first ActivityinonResume()方法。Activity

请记住,这onResume()也立即被调用一次onCreate(),因此保留一个flag值来检查您onResume()是在之后调用onCreate()还是在应用程序恢复时调用它。

于 2012-06-12T07:42:39.377 回答