安卓开发的常见问题之全局变量Application Context

创建一个属于你自己的android.app.Application的子类,然后在manifest中申明一下这个类,这是android就为此建立一个全局可用的实例,你可以在其他任何地方使用Context.getApplicationContext()方法获取这个实例,进而获取其中的状态(变量)。

下面看一下Demo:

class MyApp extends Application {

private String myState;

public String getState(){

return myState;

}

public void setState(String s){

myState = s;

}

}

class Blah extends Activity {

@Override

public void onCreate(Bundle b){

...

MyApp appState = ((MyApp)getApplicationContext());

String state = appState.getState();

...

}

}

这个效果就是使用静态变量是一样的,但是其更符合android的架构体系。 使用这种方法的话需要在AndroidManifest.xml中配置一下:

<application android:name=".MyApp"

android:icon="@drawable/icon"

android:label="@string/app_name">

我要评论!

想一个你喜欢的昵称。
给一个你的常用邮箱。
想和萌萌哒的TA们说点啥。
  • 当你的控制台上找不到错误或者看不懂错误的时候,点 Project–>clean,清空下项目就会没问题。
  • 当这个标志被设置为true或不设置该标志时应用程序数据可以备份和恢复,adb调试备份允许恶意攻击者复制应用程序数据。 在AndroidManifest.xml中设置android:allowBackup=\”false\”。
  • sdcard存储的信息可以被其他应用任意读取,如果有敏感信息会造成信息被恶意应用获取风险。 通过内部存储存文件openFileOutput(filename, Context.MODE_PRIVATE)或者对于敏感的数据加密后存储。
  • 使用Webview时需要关闭webview的自动保存密码功能,防止用户密码被webview明文存储。 设置webView.getSettings().setSavePassword(false)即可。
  • 科普下: build.prop 是Android系统中一个类似于Windows系统注册表的文件,该文件内定义了系统初始(或永久)的一些参数属性、功能的开放等。并且在 Android中虽然每一版都有自己独有的参数,但绝大部分都是通用的,且可以起到关键性作用的。 参数粗解: ro.build.id=&n...
微信扫一扫即可带走我!