对以前用过的东西做个整理和记录
获得版本号。静态变量直接用类名获得,不需要初始化一个对象,单例模式就也用不上了。代码如下:
String versionName = MyApplication.versionName;
int localVersion = MyApplication.localVersion;
在继承Application的文件代码如下:
<pre name="code" class="java">package com.example.proposalundertake;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import com.example.proposalundertake.constants.Constant;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.telephony.TelephonyManager;
import android.view.KeyEvent;
import android.widget.Toast;
/**
* For developer startup JPush SDK
* 一般建议在自定义 Application 类里初始化。也可以在主 Activity 里。
*/
public class MyApplication extends Application {
public static Application instance;
private String imsi;
private String imei;
private List<Activity> outActivity = new ArrayList<Activity>();
private boolean isQuit = false;
private Activity draftActivity;
// 版本升级
public static int localVersion = 0;// 本地安装版本
public static String versionName;//本地版本名
public static int serverVersion = 0;// 服务器版本
public static String downloadDir = "mtms/";// 安装目录
public static String url = "";
public static MyApplication getInstance() {// 单例模式中获取唯一的ExitApplication实例
if (null == instance) {
instance = new MyApplication();
}
return (MyApplication) instance;
}
@Override
public void onCreate() {
super.onCreate();
// 获得手机imsi
TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
imsi = mTelephonyMgr.getSubscriberId();
imei = mTelephonyMgr.getDeviceId();
Constant.setImsi(imsi);
Constant.setImei(imei);
// 获得本地版本
try {
PackageInfo packageInfo = getApplicationContext().getPackageManager().getPackageInfo(getPackageName(), 0);
localVersion = packageInfo.versionCode;
versionName = packageInfo.versionName;
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
/**
* 退出所有程序
*/
public void addActivity(Activity activity) {
outActivity.add(activity);
}
public void outSystem(Context context, int keyCode, KeyEvent event) {
Timer timer = new Timer();
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
if (!isQuit) {
isQuit = true;
Toast.makeText(context, "再按一次退出应用程序", Toast.LENGTH_SHORT).show();
TimerTask task = new TimerTask() {
@Override
public void run() {
isQuit = false;
}
};
timer.schedule(task, 2000);
} else {
isQuit = false;
finishAll();
}
}
}
private void finishAll() {
for (Activity activity : outActivity) {
if (!activity.isFinishing()) {
activity.finish();
}
}
System.exit(0);
}
/**
* 删除草稿列表
*/
public void addListDraftActivity(Activity activity) {
this.draftActivity = activity;
}
public void finishListDraftActivity() {
if (!draftActivity.isFinishing()) {
draftActivity.finish();
}
}
}
完。