`
jianweicao
  • 浏览: 119731 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android开发中在一个Activity中关闭另一个Activity

 
阅读更多

比如有ActivityA, ActivityB,在ActivityB中关闭ActivityA


解决方案:
1.
在 ActivityA 里面设置一个静态的变量instance,初始化为this
在 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

    在Android应用程序开发中,Intent是连接各个组件(如Activity、Service等)的关键桥梁,主要用于启动和关闭Activity。Intent不仅能够启动一个新的Activity,还能在Activity之间传递数据,实现应用内部或应用间的交互...

    Android 一次启动多个Activity (TaskStackBuilder)

    在Android开发中,有时我们需要通过通知(Notification)来引导用户进入特定的功能或界面,而不仅仅是启动单个Activity。"Android一次启动多个Activity (TaskStackBuilder)"这个话题涉及到Android的Task和Back Stack...

    Android源程序实现两个Activity之间的跳转

    在Android开发中,`Activity`是构成应用程序的基本单元之一,负责处理用户交互并展示界面。本文将详细解释如何通过代码实现两个`Activity`之间的跳转,并分析给定的`Activity01.java`与`Activity02.java`示例代码。 ...

    Android应用开发多个activity完全退出程序方法

    2. **使用FLAG_ACTIVITY_CLEAR_TASK和FLAG_ACTIVITY_NEW_TASK**:在启动新Activity的Intent中添加这两个标志,这样新Activity将启动一个新的任务,并清除之前的所有Activity。 ```java Intent intent = new ...

    【Android开发学习20】多个Activity间的交互之Intent -- 代码

    在这个“Android开发学习20”教程中,我们将专注于使用Intent在两个Activity之间进行跳转。 首先,我们需要创建两个Activity:源Activity(SourceActivity)和目标Activity(TargetActivity)。源Activity通常是...

    详解教程Android开发中的Activity 组件

    在Android开发中,`Activity`是四大组件之一,扮演着至关重要的角色。它负责提供用户界面并处理与用户的交互,每一个`Activity`通常对应一个屏幕。本文将深入探讨`Activity`的生命周期、状态转换及其在系统中的管理...

    全面解析Android应用开发中Activity类的用法

    在Android应用开发中,Activity是核心组件之一,它充当了用户界面与应用程序逻辑之间的桥梁。Activity类位于`android.app`包中,从`java.lang.Object`派生,并依次继承了`android.content.Context`、`android.app....

    android两个activity的例子

    `Intent`对象在这里扮演了关键角色,它承载了从一个Activity到另一个Activity的数据传递。如果你需要在两个Activity之间传递数据,可以在创建`Intent`时使用`putExtra()`方法添加键值对,然后在接收方Activity中使用...

    Android中使用隐式方式打开一个新的Activity

    本篇将深入探讨如何使用隐式Intent在Android中打开一个新的Activity。 **隐式Intent** 的主要特点是不直接指定目标Activity的Class名称,而是通过定义Intent的Action、Data、Category等元数据来匹配系统中注册的...

    Android四大组件——Activity(一)Activity之间通信及其生命周期变化

    例如,在一个选择图片的应用场景中,一个Activity启动了图片选择器,选择完成后,选择器Activity通过setResult()将选中的图片信息传回,源Activity则在onActivityResult()中接收到这个信息并进行后续处理。...

    Android 悬浮Activity ( Dialog风格)

    在Android开发中,"悬浮Activity"通常指的是一个可以悬浮在其他应用之上,类似Dialog样式但功能更为丰富的Activity。这样的设计可以提供用户一种便捷的方式访问或操作应用,而无需完全退出当前正在使用的应用。悬浮...

    从一个activity跳到fragment,再从fragment跳到activity

    如果只是简单地返回到上一个Activity,可以调用`finish()`方法关闭当前Activity,用户会返回到之前的Activity。如果需要传递数据,可以使用`setResult()`方法: ```java Intent resultIntent = new Intent(); // ...

    滑动界面关闭activity

    在Android应用开发中,用户交互是至关重要的,滑动界面关闭Activity是一种常见且直观的交互方式,能够提供更流畅的用户体验。"滑动界面关闭Activity"功能通常通过第三方开源库,如SwipeBackLayout来实现。这个库使得...

    Android 完全退出程序,关闭所有Activity

    在Android应用开发中,完全退出程序意味着结束所有与应用程序相关的活动(Activity)并释放系统资源。用户通常期望点击“退出”按钮后,整个应用程序能够完全关闭,而不是仅仅停留在后台运行。下面我们将详细讨论...

    Android 实现两个Activity跳转实例

    在Android应用开发中,Activity是构成应用程序的基本组件,它代表用户界面的一个屏幕。Activity之间的跳转是Android应用中常见的操作,用于实现应用的功能流转。本文将深入探讨如何在Android中实现多个Activity之间...

    android Activity 详述 demo

    在Android应用开发中,Activity是核心组件之一,它代表了用户界面的一个屏幕或者一个交互窗口。这个"android Activity 详述 demo"旨在深入探讨Activity的工作原理及其在实际应用中的使用方式。通过链接给出的博客...

    Android 多个activity完全退出实例代码

    1、新建一个 ExitApplication 类继承Application 2、在你要退出的activity Oncreate方法中加入ExitApplication.getInstance().addActivity(this);作用是添加到你的activity历史中。 3、在你当前要完全退出程序的...

    两个activity之间的切换 android 源代码

    当我们在Android应用中从一个Activity切换到另一个Activity时,这涉及到Activity的生命周期管理和Intent的使用。本教程将深入讲解如何通过源代码实现两个Activity之间的切换。 首先,了解Activity的生命周期是关键...

    Android-TopActivity展示当前app所处的最顶activity

    在Android应用开发中,了解和控制应用程序的Activity堆栈是非常重要的。"TopActivity"这个概念就是用来描述在当前运行的应用中位于最顶端的那个Activity。它代表着用户当前正在交互的界面,是用户可见并且可以直接...

    android生命周期管理:重启或停止一个Activity

    例如,一个记事本应用可能会在onStop()中保存当前的草稿笔记,确保即使应用被关闭,用户的工作也不会丢失: ```java @Override protected void onStop() { super.onStop(); // 总是先调用父类方法 // 保存笔记的...

Global site tag (gtag.js) - Google Analytics