如何将对主活动的引用传递给每个后续活动的构造函数

时间:2013-10-07 16:49:59

标签: java android performance android-intent

我在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的包信息;是没有安装包?

1 个答案:

答案 0 :(得分:1)

  

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

LaunchActivity中没有“实例对象”。您在LaunchActivity

中有一个静态数据成员

要从LaunchActivity访问MainActivity上定义的静态数据成员,只需使用LaunchActivity.nameOfYourStaticDataMember即可。在这种情况下,那将是LaunchActivity.abcConnection

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

  

所以我在MainActivity中创建一个像

这样的构造函数

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