如何完成()Homebutton按下时的一个Activity

由于一个复杂的原因,我需要能够完成()我的活动,当用户按下HOMEbutton。

这里的故事是我有一个主屏幕小部件,它启动了我的应用程序的一个完全透明的活动(即使我的活动正在运行,主屏幕不断显示)的不同部分。 如果以前的活动是通过“主页”button终止的,则会将其置于前台并遮盖主屏幕。

或者作为替代scheme,我能否以某种方式强制完成()以前的活动?

Solutions Collecting From Web of "如何完成()Homebutton按下时的一个Activity"

关于什么

android:launchMode="singleTask" 

要么

 android:launchMode="singleInstance" 

在你的清单? 我认为singleTask是你想要的,但是我还是不清楚你在做什么。

“系统根据新任务创build活动并将意图发送给它,但是,如果活动的实例已经存在,则系统通过调用onNewIntent()方法将意图路由到现有实例,而不是比创造一个新的“。 singleTask

 @Override void onPause() { super.onPause(); finish(); } 

开发文档: Acitvity生命周期 , 完成

在主屏幕上启动的活动中设置android:clearTaskOnlaunch =“true”。 例:

 <activity android:name="MainActivity" android:exported="true" android:clearTaskOnLaunch="true" android:label="@string/app_name" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

不知道关于完成()主页button按下,但我认为你可以完成()以前的活动使用:

 Intent i = new Intent(MainActivity.this, SecondActivity.class); startActivity(i); finish(); 

可能不是这样做的最好方法。 我想你也可以调用子活动的父活动,并完成它,但不知道。

我有问题closures主页上的声音button被按下。 我在下面做了这个代码。 希望它能帮助你。 重写onpause()方法。

  @Override public void onPause(){ System.exit(0); super.onPause(); } 
 @Override public void onStop() { super.onDestroy(); }