我可以在其他课程中创建活动的对象吗?

我已经在mainactivity中定义了一个函数,现在我想要访问我的app中的另一个类。我已经创建了一个mainactivity的对象,通过使用该对象我已经调用了函数。它不显示任何错误,但它不会执行每一次尝试执行应用程序崩溃? 任何解决方案

活动A应该有一个变量

static ActivityA activityA; 

在onCreate状态下:

 activityA = this; 

并添加这个方法:

 public static ActivityA getInstance(){ return activityA; } 

在活动B中,打电话

 ActivityA.getInstance().myFunction(); //call myFunction using activityA 

您不能只使用以下命令创建活动的对象:

 MyActivity activity = new MyActivity(); 

就像使用普通的Java类一样。 Android中的所有活动都必须经历活动生命周期,以便它们具有附加的有效上下文。

通过将Activity作为一个普通的Java类来处理,最终会得到一个null上下文。 由于Activity中的大多数方法都是在Context上调用的,所以会得到一个空指针异常,这就是为什么你的应用程序崩溃了。

相反,将所有需要从其他类中调用的方法移动到一个Utility类中,该类在其构造函数中接受有效的上下文,然后在方法中使用该上下文来完成工作。