在我的应用程序中,当我单击主页按钮时,再次当我打开应用程序时它应该来自第一个。我正在使用启动画面作为我的第一个活动。当我打开应用程序时,应用程序应该从启动画面开始。 / 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
}
我通过覆盖暂停方法尝试了这种方式,但它不起作用。请帮我解决这个问题
答案 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()
之后被调用或者在应用程序恢复时调用它。