我在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中创建一个构造函数
该构造函数是不必要的,并且将阻止您的应用程序运行。请删除它。