`
zxg_wolf
  • 浏览: 20184 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

android全局变量及多activity退出

阅读更多

两种方式:

1、  static类型数据,直接类名访问

2、  Application接口

 

package com.main; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.app.Application; /** * 全局变量工具类 * @author Administrator * */ public class ActivityManage extends Application { private List<Activity> mainActivity = new ArrayList<Activity>(); @Override public void onCreate() { super.onCreate(); } //以下实现完全退出多activity的应用界面 /** * * @return */ public List<Activity> MainActivity () { return mainActivity ; } public void addActivity(Activity act) { mainActivity.add(act); } public void finishAll() { System.out.println("activity num:" + mainActivity.size()); for(int index = 0; index < mainActivity.size(); index ++) { Activity act = (Activity)mainActivity.get(index); act.finish(); } mainActivity.clear(); } }


 必须在

AndroidManifest.xml中添加我们自己的Application

 

 

Eg:

<application

        android:icon="@drawable/ic_launcher" 以前系统的

        android:label="@string/app_name"    以前系统的

       android:name=".ActivityManage">    自己的Application

利用Application操作全局变量:

ActivityManage actM = (ActivityManage)getApplicationContext();

String strTemp = (editID.getText()).toString();//"01234567890";//new String((String) textID.getText());

 actM.setDeviceID(strTemp);

 

 

利用Application接口实现退出多activity程序:

退出多activity应用程序实现:

每一个新的activity进入时,加上如下代码:

public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        //

        ActivityManage actM = (ActivityManage)getApplicationContext();

        actM.addActivity(this);

        strDeviceID = actM.getDeviceID();

 

退出时:

ActivityManage actM = (ActivityManage)getApplicationContext(); actM.finishAll();



 

监听按键事件:

 

/** * 监听返回按键 */ public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){ //code........ //System.exit(0); ActivityManage actM = ActivityManage)getApplicationContext(); actM.finishAll(); } return false; }


 注:需要在

AndroidMainfest.xml文件中在application标签添加:

 

<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:name=".ActivityManage" >

 


 

 ActivityManage中:

public void finishAll()
 {
  System.out.println("activity num:" + mainActivity.size());
  for(int index = 0; index < mainActivity.size(); index ++)
  {
   Activity act = (Activity)mainActivity.get(index);
   act.finish();
  }
  mainActivity.clear();
  if(so != null)
  {
   so.socketDestory();
  }
  if(remoteDB != null)
  {
   remoteDB.closeDB();
  }
 }

分享到:
评论

相关推荐

    使用Application做全局变量

    在Android开发中,全局变量的使用常常是为了在不同的Activity之间共享数据。`Application`类是Android框架提供的一种机制,允许开发者创建一个与应用程序生命周期绑定的单例对象,从而实现全局变量的效果。本篇文章...

    Android代码-从注册流程分析如何安全退出多个Activity多种方式.rar

    2. **多Activity退出**:在一个应用中有多个Activity时,如果希望一次性关闭所有Activity,可以采用以下策略: - 使用静态变量记录Activity栈:在每个Activity的`onCreate()`方法中添加栈顶Activity的数量,并在`...

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

    1. 创建一个全局静态变量的Activity栈:在应用的基类或工具类中定义一个ArrayList来存储所有的Activity实例。每当一个新的Activity被创建时,将其添加到栈中。 ```java public class AppManager { private static ...

    Android编程中全局变量问题分析

    在Android编程中,全局变量的使用常常涉及到应用的生命周期管理和数据持久化。本文将深入探讨在Android中如何正确地处理全局变量以及遇到的一些常见问题。 首先,全局变量通常用于在整个应用程序范围内共享数据。在...

    Android中知道界面是哪个activity,一次结束所有Activity退出程序

    当用户在应用中导航时,多个Activity可以按照栈(后进先出,LIFO)的方式堆叠起来,形成一个叫做任务(Task)的结构。在某些场景下,如应用退出或清理内存,开发者可能需要结束所有已打开的Activity,让应用回到启动...

    Android Activity 完全结束并退出程序的实例

    本文将介绍如何使用全局变量标记来实现完全结束并退出 Android 程序的实例。 首先,为什么需要完全结束并退出 Android 程序?在 Android 应用程序中,Activity 是一个核心组件,它负责处理用户交互和显示用户界面。...

    退出所有的Activity

    当用户在应用中进行操作时,可能会积累多个`Activity`实例,尤其是在涉及导航堆栈的情况下。有时,开发者可能需要提供一个功能,允许用户完全退出应用,关闭所有已打开的`Activity`。这就是"退出所有的Activity"这个...

    退出Android程序时清除所有activity的实现方法

    在Android应用开发中,正确管理和退出程序中的Activity是至关重要的,因为这直接影响到用户体验和内存管理。本实例探讨了一种确保在退出程序时清除所有Activity的有效方法,避免内存泄漏和程序异常状态。以下是对该...

    Android应用源码之返回键退出程序的两种方式.zip

    可以设置一个全局变量,记录Activity的数量,当数量为1时,表示只剩主Activity,此时按返回键应退出程序: ```java private int activityCount = 0; public void startActivity(Intent intent) { super.start...

    Android退出整个应用的方法

    1. **设置一个全局变量**:在Application类或者某个基Activity中设置一个全局变量,用于记录当前活动的数量。当应用启动时,计数器初始化为0;每当启动新的Activity时,计数器加1;当Activity被销毁时,计数器减1。 ...

    获取栈顶的activity

    5. **自定义方案**:例如,可以设计一个静态变量或单例模式来保存栈顶Activity的引用,每次启动新Activity时更新这个变量。 需要注意的是,获取栈顶Activity的方法应当谨慎使用,因为这可能涉及用户隐私和安全问题...

    安卓Android源码——完全退出程序的方法.zip

    4. **清除全局变量和静态变量**:全局变量和静态变量在应用生命周期中持续存在,可能导致应用无法完全关闭。尽量避免使用全局或静态变量存储大量数据,若必须使用,记得在合适的地方清空它们。 5. **杀死应用进程**...

    android完美退出app的实例代码.pdf

    - 过度依赖全局变量和自定义`Application`类可能导致代码耦合度过高,不利于维护。 在实际开发中,通常建议遵循Android的默认行为,即让用户通过按两次返回键在短时间内退出应用,或者提供明确的退出选项。不过,在...

    关闭所有activity

    这个列表可以是一个全局变量,存储在Application类或者单例模式的类中,以便在整个应用生命周期内都能访问。例如,你可以创建一个ArrayList&lt;Activity&gt;来保存活动的引用。 当一个新的Activity启动时,我们会在它的...

    Android静态变量的生命周期 简单介绍

    Activity的生命周期独立于进程,即使所有的Activity都已退出,进程仍然可能存在。因此,用户再次启动应用时,之前存储在静态变量中的数据可能仍然存在。在这种情况下,为了保持应用的一致性和防止意外行为,通常需要...

    ANDROID 完美退出APP的实例代码

    大家都知道 Android 的 Activity 是存着历史栈的,比如从 A -&gt; B -&gt; C,C 完成 finish 后回到 B,把所有的Activity 都 finish了,程序就自然退出了。 当然在 finish 的同时也需要是否自己程序的其他资源。所以需要想...

    Activity之间信息传递,切换效果集合,包括按钮美化

    3. **静态成员变量**:尽管不推荐,但在简单场景下,可以通过定义静态成员变量进行Activity间的数据共享。 4. **Application实例**:创建自定义的Application类,将数据保存在其中,但同样不建议,因为可能导致内存...

    完全退出程序Demo

    总结来说,完全退出Android应用不仅涉及到Activity的关闭,还需要处理Service、BroadcastReceiver和其他可能存在的后台组件。通过结合使用`System.exit(0)`、`finish()`、`ActivityManager`、`BroadcastReceiver`...

    最新Android面试题.pdf

    【Android API 异常处理】 在Android编程中,尽管某些...对于需要全局退出的情况,可以考虑使用广播或统一的基类Activity进行管理。然而,强制结束应用程序并不推荐,因为它可能破坏应用程序的正常运行流程和用户体验。

Global site tag (gtag.js) - Google Analytics