没有getPackageManager的Android getPackageInfo

时间:2012-07-03 12:29:30

标签: java android

是否有可能在没有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;

3 个答案:

答案 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()"