我在LaunchActivity中有一个类,在其中我要在OnCreate()中初始化一个对象。现在在launchActivity中单击一个按钮将创建MainActivity。我正在尝试访问MainActivity中在LaunchActivity中创建的实例对象。

这是LaunchActivity

LaunchActivity extends Activity
{
    public static ABConnection abcConnection;
  protected void onCreate(Bundle savedInstanceState) {
abcConnection = new ABConnection(this);
}

public void Button_Click(View v)
{
 Intent myintent=new Intent(LaunchPage.this,MainActivity.class);
        startActivity(myintent);
}


所以我要像这样在MainActivity中创建一个构造函数,

私有LaunchPage启动页面;

public MainActivity(LaunchPage launchpage)
    {
        this.launchpage=launchpage;
    }


然后我试图以LaunchPage.Object.Method.访问MainActivity的实例对象

但是在执行时,我收到以下错误-由以下原因引起:java.lang.IllegalStateException:无法获取com.example.XXX的软件包信息;是否未安装软件包?

最佳答案

我正在尝试访问MainActivity中在LaunchActivity中创建的实例对象。


您在LaunchActivity中没有“实例对象”。 LaunchActivity中有一个静态数据成员。

要从LaunchActivity访问在MainActivity上定义的静态数据成员,只需使用LaunchActivity.nameOfYourStaticDataMember。在这种情况下,该值为LaunchActivity.abcConnection

在这种情况下,使用静态数据成员可能并不明智,因为根据ABConnection的实现,您可能正在泄漏内存,尤其是您的LaunchActivity实例。


所以我正在这样在MainActivity中创建一个构造函数


该构造函数是不必要的,并且将阻止您的应用程序运行。请删除它。

10-04 20:53