我想从一个调用另一个应用程序。我对另一个应用程序的调用来自非活动类。但是getPackageManager()
显示这样的错误The method getPackageManager() is undefined for the type AppLauncher
。我也导入了包管理器,但它仍然显示相同的错误。
是否可以从非活动类调用另一个应用程序?提前谢谢。
我想从一个调用另一个应用程序。我对另一个应用程序的调用来自非活动类。但是getPackageManager()
显示这样的错误The method getPackageManager() is undefined for the type AppLauncher
。我也导入了包管理器,但它仍然显示相同的错误。
是否可以从非活动类调用另一个应用程序?提前谢谢。
将您传递activity context
给non-activity class
. 并从该上下文中调用不同的应用程序。
你需要一个上下文来调用getPackageManager()
它。从应用中的活动中获取上下文:
在您的主要活动的 onCreate 块中:
AppLauncher.setContext(this.getBaseContext));
在您的非活动类(AppLauncher)中:
Context context;
public static void setContext(Context context) {
this.context = context;
}
在您要调用 getPackageManager() 的非活动类中:
context.getPackageManager();
提示:如果您在 windows 上使用 eclipse 进行开发,请始终使用 Ctrl+Shift+O 自动导入缺少的和需要的包。
这些方法(例如getPackageManager()或startActivity())是上下文的成员。您需要将您的主要活动或其上下文传递给其他类。
顺便说一句,我不明白为什么您需要包管理器来启动另一个应用程序。用相应的意图调用 startActivity() 怎么样?(但我想有充分的理由这样做)