Android 创建跨课程的意图和活动

Android 创建跨课程的意图和活动,android,android-intent,Android,Android Intent,我希望这是这个问题的恰当标题。现在我有两门课。一个主类和一个ApplicationOperations类。最初,我有一个卸载应用程序的方法,列出了所有安装的应用程序,这些应用程序在我的主类中运行良好。现在,当我将它们移动到另一个类以进行扩展时,它们不起作用。我不知道任何关于意图,因为我仍然是一个新手,所以任何帮助都将是伟大的 我的电脑出了一个错误 PackageManager pm = getPackageManager(); <--method undefined??? an

我希望这是这个问题的恰当标题。现在我有两门课。一个主类和一个ApplicationOperations类。最初,我有一个卸载应用程序的方法,列出了所有安装的应用程序,这些应用程序在我的主类中运行良好。现在,当我将它们移动到另一个类以进行扩展时,它们不起作用。我不知道任何关于意图,因为我仍然是一个新手,所以任何帮助都将是伟大的

我的电脑出了一个错误

PackageManager pm = getPackageManager(); <--method undefined???
      and
StartActivity <---method undefined. 
当你的代码

PackageManager pm = getPackageManager();
在从活动类Main继承的类中,它起作用,因为事实上getPackageManager是Context.getPackageManager。活动扩展了上下文类,因此一切正常。 但您将此代码移到了新类中,该类不扩展任何与上下文相关的内容。因此您有一个编译错误。 您应该以某种方式将上下文传递到新类ApplicationOperations中并使用它

PackageManager pm = mContext.getPackageManager()

getPackageManager需要上下文。 您可以在ApplicationOperations类中添加上下文或主成员,并添加一个init方法将Main传递给它

private Main context;
public ApplicationOperations(Main activity) {
    this.context = activity;
}
然后在需要时使用它

PackageManager pm = context.getPackageManager(); 

啊!我该怎么做?你能给我看看吗?我有public void list installedapplicationscontext mContext,但我不知道从哪里获取mContext?这取决于您将如何使用ApplicationOperations类。我没有看到您正在构建的应用程序的体系结构,因此我不知道该类的方法将从何处执行。如果将这些方法设置为静态,并决定从activity类调用,则可以将上下文作为附加参数传递,例如,如果将此代码放入主类:ApplicationOperations.ListalInstalledApplicationsGetApplicationContext,这将起作用,但需要将ListalInstalledApplications设置为静态
private Main context;
public ApplicationOperations(Main activity) {
    this.context = activity;
}
PackageManager pm = context.getPackageManager();