1

我想从一个调用另一个应用程序。我对另一个应用程序的调用来自非活动类。但是getPackageManager()显示这样的错误The method getPackageManager() is undefined for the type AppLauncher。我也导入了包管理器,但它仍然显示相同的错误。

是否可以从非活动类调用另一个应用程序?提前谢谢。

4

3 回答 3

2

将您传递activity contextnon-activity class. 并从该上下文中调用不同的应用程序。

于 2012-09-06T06:16:30.013 回答
1

你需要一个上下文来调用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 自动导入缺少的和需要的包。

于 2012-09-06T06:44:54.230 回答
0

这些方法(例如getPackageManager()startActivity())是上下文的成员。您需要将您的主要活动或其上下文传递给其他类。

顺便说一句,我不明白为什么您需要包管理器来启动另一个应用程序。用相应的意图调用 startActivity() 怎么样?(但我想有充分的理由这样做)

于 2012-09-06T06:20:21.740 回答