android应用的主屏幕?
我想去我的应用程序主页点击按钮,我在里面的页面。 有人能告诉我怎么做吗 谢谢你android应用的主屏幕?,android,Android,我想去我的应用程序主页点击按钮,我在里面的页面。 有人能告诉我怎么做吗 谢谢你 Srinivas在您的按钮单击事件上添加以下代码行 moveTaskToBack(真)可能有两种方法(一般概念): 第一种方法是再次启动home activity,如果您不介意重新创建它,除非该活动是“singleTask”或“singleInstance”活动 第二种方法是关闭堆栈中的顶部活动,只要它不是您的主活动。我看不到一个简单的方法来实现这一点,可能是通过使用启动活动检查的特定结果来完成当前活动,启动活动将关
Srinivas在您的按钮单击事件上添加以下代码行
moveTaskToBack(真)代码>可能有两种方法(一般概念):
第一种方法是再次启动home activity,如果您不介意重新创建它,除非该活动是“singleTask”或“singleInstance”活动
第二种方法是关闭堆栈中的顶部活动,只要它不是您的主活动。我看不到一个简单的方法来实现这一点,可能是通过使用启动活动检查的特定结果来完成当前活动,启动活动将关闭并发送结果,直到到达主活动。我建议创建一个应用程序
类。在该类中,有一个默认为false的布尔字段。每个活动
都应检查onResume()
中的字段是否为真,如果为真,则调用finish()
(除了在onResume()
中始终将字段设置为false的主活动)。您甚至可以创建一个自定义的活动来执行此操作,然后让所有活动扩展该活动
资源:
-
android.app.Application类
android.app.Application是需要维护全局应用程序状态的基类。可以通过getApplication()从任何活动或服务访问它。它有几个生命周期方法,如果您在AndroidManifest.xml中注册它,它将由Android自动实例化
- 参考:
简化示例:
MyApp
public class MyApp extends Application { public boolean goBack = false; }
MyActivity
public class MyActivity extends Activity {
protected void onResume() {
if ( ((MyApp) getApplication()).goBack ) finish();
}
}
public class SomeActivity extends MyActivity {
// nothing special here, it's all been implemented in MyActivity!
}
public class MainActivity extends Activity {
protected void onResume() {
((MyApp) getApplication()).goBack = false;
}
}
SomeActivity
public class MyActivity extends Activity {
protected void onResume() {
if ( ((MyApp) getApplication()).goBack ) finish();
}
}
public class SomeActivity extends MyActivity {
// nothing special here, it's all been implemented in MyActivity!
}
public class MainActivity extends Activity {
protected void onResume() {
((MyApp) getApplication()).goBack = false;
}
}
main活动
public class MyActivity extends Activity {
protected void onResume() {
if ( ((MyApp) getApplication()).goBack ) finish();
}
}
public class SomeActivity extends MyActivity {
// nothing special here, it's all been implemented in MyActivity!
}
public class MainActivity extends Activity {
protected void onResume() {
((MyApp) getApplication()).goBack = false;
}
}
AndroidManifest.xml
[...] <application android:name=".MyApp" [...]> [...]
[…][…]
注意:您不需要在AndroidManifest.xml
中声明MyActivity
,因为它永远不会直接启动(只会被扩展)。它将进入主屏幕,但我需要切换到我的应用程序的主页,即;到MainActivity。对不起,我没有正确阅读您的问题。。。。我想你已经得到了部分答案。您可以将父活动保留为singleTask,当您从其他地方调用主活动时,请设置此标志INTERNAT.flag\U ACTIVE\U CLEAR\U TOP。因此,它们之间的所有活动都将得到完成。我不推荐第一个“解决方案”,因为这将创建一个活动循环(main->other->main->other->main),这可能会非常烦人。我尝试了第一个解决方案,正如你所说,循环形成,当我单击“上一步”时。请告诉我如何继续第二个解决方案?如果调用startActivityForResult(),如果覆盖onActivityResult(),则可以从启动的活动中获得返回值。然后,您可以根据返回的值检查是否应关闭当前活动。谢谢您,伙计。谢谢您的解决方案。