Android 4.1 APP中的static变量即使在APP退出后仍然不会被擦除

Android 4.1 APP中的static变量即使在APP退出后仍然会保留最后赋值状态。

public class MainActivity extends Activity {
    private TextView tv;
    private static int i=10;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tv = (TextView) findViewById(R.id.textView1);
        Button button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                i += 10;
            }
        });
        Button button2 = (Button) findViewById(R.id.button2);
        button2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                tv.setText("i is :" + i);
            }
        });
    }

}

APP第一次启动时,单击按钮2,会显示 i 的初始值。

单击按钮1,把 i 增加10,退出APP,再次启动APP,单击按钮2 ,显示 i 的值为:20。

说明:在程序退出后,i 的值会被覆盖,并且不可恢复。i 也不会被程序回收在下次启动时再次赋值。

时间: 2024-12-28 10:46:27

Android 4.1 APP中的static变量即使在APP退出后仍然不会被擦除的相关文章

Android开发中使用static变量应该注意的问题

1 package com.highxin.launcher01; 2 3 4 5 import java.util.ArrayList; 6 import java.util.HashMap; 7 import java.util.Iterator; 8 import java.util.List; 9 import java.util.Map; 10 11 import android.app.Activity; 12 import android.content.ComponentName

c中的static变量

当一个进程的全局变量被声明为static之后,它的中文名叫静态全局变量.静态全局变量和其他的全局变量的存储地点并没有区别,但是它只在定义它的源文件内有效,其他源文件无法访问它. static局部变量中文名叫静态局部变量.它与普通的局部变量比起来有如下几个区别: 1)位置:静态局部变量被编译器放在全局存储区,所以它虽然是局部的,但是在程序的整个生命周期中存在. 2)访问权限:静态局部变量只能被其作用域内的变量或函数访问.也就是说虽然它会在程序的整个生命周期中存在,由于它是static的,它不能被其

ecmall中static变量的使用-model模型代码设计

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 function &m($model_name, $params = array(), $is_new = false) {     <span style="backg

Java多线程中static变量的使用

有时候,对于在多线程中使用static变量有没有冲突,是否存在安全问题不能十分的确定.在使用过程中有点含糊,总想找点时间好好追究一下,可总因开发项目时间的紧迫而搁浅.我想,没有做进一步的研究而拿项目繁忙说事,这是自己的借口吧! 鲁迅先生曾说过:"时间就像海绵里的水,只要愿挤,总还是有的".不管肿(怎)么说,这事还是要做的啊.如果越往后推,可能造成的潜在影响更大.这始终是个隐患,不能不除. 不是痛定思痛,而是认识到事情的重要性,就要开始行动了... ... 以上是个人的闲言碎语,不足而看

[C/C++]在头文件中使用static定义变量意味着什么

文章出处:http://www.cnblogs.com/zplutor/ 看到有一位同学在头文件中这么写: 1 static const wchar_t* g_str1 = - 2 static const wchar_t* g_str2 = - 这种定义变量的方式我从来没有见过,而且它还能顺利通过编译,于是我很想知道编译器是如何处理这种变量定义的. 定义全局变量时使用static,意味着该变量的作用域只限于定义它的源文件中,其它源文件不能访问.既然这种定义方式出现在头文件中,那么可以很自然地推

Cpp -- static变量不属于类的实例

在Cpp中,类中的Static变量不属于任何一个实例. 下面,使用两种方法具体证明. 1. class Student{ private: string name; int age; int height; static int money; public: Student(string inputName,int inputAge):name(inputName),age(inputAge){ } void displayStudent(){ cout<<name<<endl;

static变量的使用

静态变量 类型说明符是static. 静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直到整个程序运行结束(相反,而auto自动变量,即动态局部变量,属于动态存储类别,占动态存储空间,函数调用结束后即释放).静态变量虽在程序的整个执行过程中始终存在,但是在它作用域之外不能使用. 另外,属于静态存储方式的量不一定就是静态变量. 例如:外部变量虽属

objective-c static变量的使用总结

在java中,我们经常使用的是单例模式,这些设计模式在ios开发中也比较常用,最近也在考虑使用在ios开发中使用单例模式 在objective-c中,需要在.m文件里面定义个static变量来表示全局变量(和java里面的类变量类似,但是在objective-c中,static变量只是在编译时候进行初始化,对于static变量,无论是定义在方法体里面 还是在方法体外面其作用域都一样 在我们经常使用的UITableViewController里面,在定义UITableCellView的时候,模板经

static变量的使用(转)

静态变量 类型说明符是static. 静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直到整个程序运行结束(相反,而auto自动变量,即动态局部变量,属于动态存储类别,占动态存储空间,函数调用结束后即释放).静态变量虽在程序的整个执行过程中始终存在,但是在它作用域之外不能使用. 另外,属于静态存储方式的量不一定就是静态变量. 例如:外部变量虽属