比如有ActivityA, ActivityB,在ActivityB中关闭ActivityA
解决方案:
1.
在 ActivityA 里面设置一个静态的变量instance,初始化为this
在 ActivityB 里面, ActivityA.instance.finish();
在 ActivityB 里面, ActivityA.instance.finish();
2.
也可以通过ActivityManager
ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
manager.restartPackage(packageName);
例子如下: ActivityA package com.activity.yuzhenbei; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends Activity { public static ActivityA instance = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activitya); instance = this; Intent intent = new Intent(); intent.setClass(ActivityA.this, ActivityB.class); ActivityA.this.startActivity(intent); } // Menu // 当点击Menu按钮时,调用该方法 @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, 1, 1, R.string.help).setIcon( android.R.drawable.ic_menu_close_clear_cancel); return super.onCreateOptionsMenu(menu); } // 选中某个菜 @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == 1) { Intent intent = new Intent(); intent.setClass(ActivityA.this, ActivityB.class); ActivityA.this.startActivity(intent); } return super.onOptionsItemSelected(item); } // 返回键 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { // 如果是手机上的返回键 ActivityA.this.finish(); } return super.onKeyDown(keyCode, event); } } ActivityB package com.activity.yuzhenbei; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; public class ActivityB extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activityb); } // 返回键 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { // 如果是手机上的返回键 ActivityB.this.finish(); ActivityA.instance.finish(); } return super.onKeyDown(keyCode, event); } }
相关推荐
在Android应用程序开发中,Intent是连接各个组件(如Activity、Service等)的关键桥梁,主要用于启动和关闭Activity。Intent不仅能够启动一个新的Activity,还能在Activity之间传递数据,实现应用内部或应用间的交互...
在Android开发中,有时我们需要通过通知(Notification)来引导用户进入特定的功能或界面,而不仅仅是启动单个Activity。"Android一次启动多个Activity (TaskStackBuilder)"这个话题涉及到Android的Task和Back Stack...
在Android开发中,`Activity`是构成应用程序的基本单元之一,负责处理用户交互并展示界面。本文将详细解释如何通过代码实现两个`Activity`之间的跳转,并分析给定的`Activity01.java`与`Activity02.java`示例代码。 ...
2. **使用FLAG_ACTIVITY_CLEAR_TASK和FLAG_ACTIVITY_NEW_TASK**:在启动新Activity的Intent中添加这两个标志,这样新Activity将启动一个新的任务,并清除之前的所有Activity。 ```java Intent intent = new ...
在这个“Android开发学习20”教程中,我们将专注于使用Intent在两个Activity之间进行跳转。 首先,我们需要创建两个Activity:源Activity(SourceActivity)和目标Activity(TargetActivity)。源Activity通常是...
在Android开发中,`Activity`是四大组件之一,扮演着至关重要的角色。它负责提供用户界面并处理与用户的交互,每一个`Activity`通常对应一个屏幕。本文将深入探讨`Activity`的生命周期、状态转换及其在系统中的管理...
在Android应用开发中,Activity是核心组件之一,它充当了用户界面与应用程序逻辑之间的桥梁。Activity类位于`android.app`包中,从`java.lang.Object`派生,并依次继承了`android.content.Context`、`android.app....
`Intent`对象在这里扮演了关键角色,它承载了从一个Activity到另一个Activity的数据传递。如果你需要在两个Activity之间传递数据,可以在创建`Intent`时使用`putExtra()`方法添加键值对,然后在接收方Activity中使用...
本篇将深入探讨如何使用隐式Intent在Android中打开一个新的Activity。 **隐式Intent** 的主要特点是不直接指定目标Activity的Class名称,而是通过定义Intent的Action、Data、Category等元数据来匹配系统中注册的...
例如,在一个选择图片的应用场景中,一个Activity启动了图片选择器,选择完成后,选择器Activity通过setResult()将选中的图片信息传回,源Activity则在onActivityResult()中接收到这个信息并进行后续处理。...
在Android开发中,"悬浮Activity"通常指的是一个可以悬浮在其他应用之上,类似Dialog样式但功能更为丰富的Activity。这样的设计可以提供用户一种便捷的方式访问或操作应用,而无需完全退出当前正在使用的应用。悬浮...
如果只是简单地返回到上一个Activity,可以调用`finish()`方法关闭当前Activity,用户会返回到之前的Activity。如果需要传递数据,可以使用`setResult()`方法: ```java Intent resultIntent = new Intent(); // ...
在Android应用开发中,用户交互是至关重要的,滑动界面关闭Activity是一种常见且直观的交互方式,能够提供更流畅的用户体验。"滑动界面关闭Activity"功能通常通过第三方开源库,如SwipeBackLayout来实现。这个库使得...
在Android应用开发中,完全退出程序意味着结束所有与应用程序相关的活动(Activity)并释放系统资源。用户通常期望点击“退出”按钮后,整个应用程序能够完全关闭,而不是仅仅停留在后台运行。下面我们将详细讨论...
在Android应用开发中,Activity是构成应用程序的基本组件,它代表用户界面的一个屏幕。Activity之间的跳转是Android应用中常见的操作,用于实现应用的功能流转。本文将深入探讨如何在Android中实现多个Activity之间...
在Android应用开发中,Activity是核心组件之一,它代表了用户界面的一个屏幕或者一个交互窗口。这个"android Activity 详述 demo"旨在深入探讨Activity的工作原理及其在实际应用中的使用方式。通过链接给出的博客...
1、新建一个 ExitApplication 类继承Application 2、在你要退出的activity Oncreate方法中加入ExitApplication.getInstance().addActivity(this);作用是添加到你的activity历史中。 3、在你当前要完全退出程序的...
当我们在Android应用中从一个Activity切换到另一个Activity时,这涉及到Activity的生命周期管理和Intent的使用。本教程将深入讲解如何通过源代码实现两个Activity之间的切换。 首先,了解Activity的生命周期是关键...
在Android应用开发中,了解和控制应用程序的Activity堆栈是非常重要的。"TopActivity"这个概念就是用来描述在当前运行的应用中位于最顶端的那个Activity。它代表着用户当前正在交互的界面,是用户可见并且可以直接...
例如,一个记事本应用可能会在onStop()中保存当前的草稿笔记,确保即使应用被关闭,用户的工作也不会丢失: ```java @Override protected void onStop() { super.onStop(); // 总是先调用父类方法 // 保存笔记的...