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活动的完整源代码,那么我可以帮你。