gpt4 book ai didi

java - 如何调用包含在 Android Activity 中的方法?

转载 作者:太空狗 更新时间:2023-10-29 16:10:55 24 4
gpt4 key购买 nike

我有一个 Activity 类,它有一个名为 getPacketNames() 的方法,它返回一些已安装包的名称。

private ArrayList<CharSequence> getPackageNames(){
ArrayList<CharSequence> packageNames = new ArrayList<>();
List<PackageInfo> packagesInfos = getPackageManager().getInstalledPackages(0);

for(PackageInfo packageInfo: packagesInfos){
if(!isSystemApp(packageInfo)){
packageNames.add(packageInfo.packageName);
}
}

return packageNames;
}

我想让其他人可以轻松地从另一个类调用此方法。但是,为了这样做,他们必须创建 Activity 的实例。这看起来很麻烦,而且不正确。

有什么方法可以在 Activity 之外创建此方法吗?当我创建一个单独的类并复制粘贴该方法时,它不起作用,因为 getPackageManager().getInstalledPackages(0) 似乎需要在 Activity 中。

最佳答案

您不应该尝试那样做。相反,创建一个 UtilityClass 并将您的 getPackageNames() 作为静态方法。

public final class MyUtils {

public static ArrayList<CharSequence> getPackageNames(final Context context){
ArrayList<CharSequence> packageNames = new ArrayList<>();
List<PackageInfo> packagesInfos = context.getPackageManager().getInstalledPackages(0);

for(PackageInfo packageInfo: packagesInfos){
if(!isSystemApp(packageInfo)){
packageNames.add(packageInfo.packageName);
}
}

return packageNames;
}
private static boolean isSystemApp(...){
...
}
}

然后从 Activity 中,您可以按如下方式访问它:

MyUtils.getPackageNames(this);

关于java - 如何调用包含在 Android Activity 中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50905518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com