Pra*_*dav 4 android android-activity
我已经在mainactivity中定义了一个函数,现在我想用我的app中的另一个类访问.我已经通过使用我调用了该函数的对象创建了一个mainactivity的对象.它没有显示任何错误,但它不是每次都执行尝试执行应用程序崩溃?任何解决方案
Lum*_*mis 34
活动A应该有一个变量
static ActivityA activityA;
Run Code Online (Sandbox Code Playgroud)
在onCreate状态:
activityA = this;
Run Code Online (Sandbox Code Playgroud)
并添加此方法:
public static ActivityA getInstance(){
return activityA;
}
Run Code Online (Sandbox Code Playgroud)
在活动B中,致电
ActivityA.getInstance().myFunction(); //call myFunction using activityA
Run Code Online (Sandbox Code Playgroud)
Rag*_*ood 15
您不能只使用以下方法创建活动对象:
MyActivity activity = new MyActivity();
Run Code Online (Sandbox Code Playgroud)
就像使用普通的Java类一样.Android中的所有活动都必须通过活动生命周期,以便它们附加有效的上下文.
通过将Activity视为普通的Java类,最终得到一个空上下文.由于Activity中的大多数方法都在其Context上调用,因此您将获得空指针异常,这就是您的应用程序崩溃的原因.
相反,将需要从其他类调用的所有此类方法移动到Utility类中,该类在其构造函数中接受有效上下文,然后在方法中使用该上下文来完成工作.
| 归档时间: |
|
| 查看次数: |
18635 次 |
| 最近记录: |