两种方式:
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(); } }
必须在
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; }
注:需要在
<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();
}
}
发表评论
-
android应用程序内打开其他应用程序
2012-05-29 14:39 2535方法一: java:final PackageManager ... -
MSP430学习笔记
2012-05-11 11:06 14341、 IAR程序下载方式:串口下载 2、 复位向量地址: ... -
禁止访问apache服务器目录
2012-05-11 11:06 1019在Apache配置文件中找到类似()<Directory ... -
PHP文件上传
2012-05-29 14:35 934必须确保服务器目标文件夹的属性为可写:chmod 777 -R ... -
【转】php中页面之间传递变量方法总结
2012-05-11 11:07 1086php中页面之间传递变量方法总结: 在实际的网站开发当中,我们 ... -
PHP读mysql乱码
2012-05-23 10:26 769保持php与mysql编码一致:设置php编码:header( ... -
C语言 select实现socket并发
2012-05-23 10:26 1999#include <stdio.h> #incl ... -
C#全局变量
2012-05-23 10:25 1028class myType { pu ... -
C#定时器
2012-05-04 17:08 0WPF是有自己的定时器类的,那就是System.Windows ... -
C#ini文件操作
2012-05-11 11:10 1861using System; using System.Col ... -
android获取系统时间
2012-05-23 10:24 856取得系统时间long time=System.currentT ... -
android获取屏幕分辨率
2012-05-04 17:01 788Display display = getWindowMana ... -
android读sqlite中文乱码
2012-05-04 17:00 1215android系统采用GBK的编码方式,sqlite默认使用U ... -
android不能写存储卡
2012-05-04 16:57 837权限使能 在AndroidManifest.xml添加 & ... -
android 隐藏标题栏
2012-05-04 16:56 935//隐藏标题栏 requestWin ...
相关推荐
在Android开发中,全局变量的使用常常是为了在不同的Activity之间共享数据。`Application`类是Android框架提供的一种机制,允许开发者创建一个与应用程序生命周期绑定的单例对象,从而实现全局变量的效果。本篇文章...
2. **多Activity退出**:在一个应用中有多个Activity时,如果希望一次性关闭所有Activity,可以采用以下策略: - 使用静态变量记录Activity栈:在每个Activity的`onCreate()`方法中添加栈顶Activity的数量,并在`...
1. 创建一个全局静态变量的Activity栈:在应用的基类或工具类中定义一个ArrayList来存储所有的Activity实例。每当一个新的Activity被创建时,将其添加到栈中。 ```java public class AppManager { private static ...
在Android编程中,全局变量的使用常常涉及到应用的生命周期管理和数据持久化。本文将深入探讨在Android中如何正确地处理全局变量以及遇到的一些常见问题。 首先,全局变量通常用于在整个应用程序范围内共享数据。在...
当用户在应用中导航时,多个Activity可以按照栈(后进先出,LIFO)的方式堆叠起来,形成一个叫做任务(Task)的结构。在某些场景下,如应用退出或清理内存,开发者可能需要结束所有已打开的Activity,让应用回到启动...
本文将介绍如何使用全局变量标记来实现完全结束并退出 Android 程序的实例。 首先,为什么需要完全结束并退出 Android 程序?在 Android 应用程序中,Activity 是一个核心组件,它负责处理用户交互和显示用户界面。...
当用户在应用中进行操作时,可能会积累多个`Activity`实例,尤其是在涉及导航堆栈的情况下。有时,开发者可能需要提供一个功能,允许用户完全退出应用,关闭所有已打开的`Activity`。这就是"退出所有的Activity"这个...
在Android应用开发中,正确管理和退出程序中的Activity是至关重要的,因为这直接影响到用户体验和内存管理。本实例探讨了一种确保在退出程序时清除所有Activity的有效方法,避免内存泄漏和程序异常状态。以下是对该...
可以设置一个全局变量,记录Activity的数量,当数量为1时,表示只剩主Activity,此时按返回键应退出程序: ```java private int activityCount = 0; public void startActivity(Intent intent) { super.start...
1. **设置一个全局变量**:在Application类或者某个基Activity中设置一个全局变量,用于记录当前活动的数量。当应用启动时,计数器初始化为0;每当启动新的Activity时,计数器加1;当Activity被销毁时,计数器减1。 ...
5. **自定义方案**:例如,可以设计一个静态变量或单例模式来保存栈顶Activity的引用,每次启动新Activity时更新这个变量。 需要注意的是,获取栈顶Activity的方法应当谨慎使用,因为这可能涉及用户隐私和安全问题...
4. **清除全局变量和静态变量**:全局变量和静态变量在应用生命周期中持续存在,可能导致应用无法完全关闭。尽量避免使用全局或静态变量存储大量数据,若必须使用,记得在合适的地方清空它们。 5. **杀死应用进程**...
- 过度依赖全局变量和自定义`Application`类可能导致代码耦合度过高,不利于维护。 在实际开发中,通常建议遵循Android的默认行为,即让用户通过按两次返回键在短时间内退出应用,或者提供明确的退出选项。不过,在...
这个列表可以是一个全局变量,存储在Application类或者单例模式的类中,以便在整个应用生命周期内都能访问。例如,你可以创建一个ArrayList<Activity>来保存活动的引用。 当一个新的Activity启动时,我们会在它的...
Activity的生命周期独立于进程,即使所有的Activity都已退出,进程仍然可能存在。因此,用户再次启动应用时,之前存储在静态变量中的数据可能仍然存在。在这种情况下,为了保持应用的一致性和防止意外行为,通常需要...
大家都知道 Android 的 Activity 是存着历史栈的,比如从 A -> B -> C,C 完成 finish 后回到 B,把所有的Activity 都 finish了,程序就自然退出了。 当然在 finish 的同时也需要是否自己程序的其他资源。所以需要想...
3. **静态成员变量**:尽管不推荐,但在简单场景下,可以通过定义静态成员变量进行Activity间的数据共享。 4. **Application实例**:创建自定义的Application类,将数据保存在其中,但同样不建议,因为可能导致内存...
总结来说,完全退出Android应用不仅涉及到Activity的关闭,还需要处理Service、BroadcastReceiver和其他可能存在的后台组件。通过结合使用`System.exit(0)`、`finish()`、`ActivityManager`、`BroadcastReceiver`...
【Android API 异常处理】 在Android编程中,尽管某些...对于需要全局退出的情况,可以考虑使用广播或统一的基类Activity进行管理。然而,强制结束应用程序并不推荐,因为它可能破坏应用程序的正常运行流程和用户体验。