我正在编写一个应用程序,我正在处理4个活动,让我们说A,B,C和D.活动A调用B,B调用C,C调用D.在每个活动中,我有一个名为"home"的按钮按钮.当用户在任何B,C,D活动中点击主页按钮时,应用程序应该返回到活动屏幕?
在这种情况下如何模拟"主页"按钮?
syn*_*nic 70
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
startActivity(new Intent(D.this, A.class));
}
});
Run Code Online (Sandbox Code Playgroud)
声明在你的清单与android:launchMode="singleTask".这样,当你startActivity()从其他活动中打电话,A已经在运行时,它就会把它带到前面.否则它将启动一个新实例.
小智 25
我看到的唯一问题android:launchMode="singleTask"就是当你最小化应用程序并再次按下应用程序图标启动应用程序时,应用程序从头开始并且不会获得其状态.所以我选择使用
intent.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP );
Run Code Online (Sandbox Code Playgroud)
这将只保留一个实例并清除所有活动.
Intent intent = new Intent( context, MyActivity.class );
intent.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP );
current_activity.startActivity( intent );
Run Code Online (Sandbox Code Playgroud)
小智 5
科特林
fun Context.popToRoot()
{
val intent = Intent(this, MainActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP
startActivity(intent)
}
Run Code Online (Sandbox Code Playgroud)
将 MainActivity 更改为您的主要活动。
在任何活动中只需调用:
this.popToRoot()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28615 次 |
| 最近记录: |