是否有可能在没有getPackageManager的情况下获取应用程序的versionCode?我的问题是,我想要一个没有Activity的公共Configuration类,所以getPackageManager()不起作用。有什么想法吗?
我目前的代码:
PackageInfo pinfo;
try {
pinfo = getPackageManager().getPackageInfo(getPackageName(), 0);
} catch (NameNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
pinfo = null;
}
appVersion = pinfo.versionCode;
答案 0 :(得分:2)
您必须将对Context
的引用(最好使用getApplicationContext()
,以防止意外内存泄漏)传递给公共Configuration
类。没有其他方法可以检索应用程序的versionCode
。您必须使用PackageManager
。
答案 1 :(得分:1)
在非活动类的构造函数中获取Context的实例,并使用它来调用所有此类方法。
这样的事情:
public class NonActivityClass implements SensorListener{
Context mContext;
public NonActivtiyClass(Context context) {
this.mContext = context;
}
//Rest of your code
}
然后执行此操作以在Activtiy onCreate()
中创建该类的对象:
NonActivityClass nac = new NonActivityClass(this);
答案 2 :(得分:1)
使用以下代码获取当前应用的应用版本代码:
(click)="clearValue(); $event.stopPropagation()"