我有两项活动,A&例如B。
我使用startActivity()
我的问题是,当我参加活动B时,如何才能访问活动A?
谢谢,
答案 0 :(得分:2)
要访问“活动”之间共享的功能,最好将该功能移至Application类或其他形式的Singleton。原因是活动生命周期不允许您确定在焦点活动运行时退出的活动仍然存在。所以你需要使用一个能够在活动之间持久化的对象,甚至在任一活动上调用Activity.finish()。
以下是Application类的文档。 http://developer.android.com/reference/android/app/Application.html
您可以通过调用
从任何活动中访问该应用程序this.getApplication();
答案 1 :(得分:0)
这实际上取决于您想要做什么,以及您认为自己需要访问权限的原因。您可以做的一件事是使用intent.putExtra
然后startActivityForResult
将数据传递到活动中,并在onActivityResult
中侦听结果。你能提供更多关于你想做什么的信息吗?
要在活动结束时执行方法,请按以下方式调用“子”活动:
Intent child = new Intent(this, ChildActivity.class);
startActivityForResult(child, CHILD_CODE);
其中CHILD_CODE
是非负整数字段。现在,您必须在“子”活动(您使用onActivityResult
开始的活动)中设置结果。
Intent resultIntent = new Intent();
setResult(Activity.RESULT_OK, resultIntent);
finish();
现在在您的“父级”活动中,按照以下方式实施onActivityResult
方法:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case CHILD_CODE:
if (resultCode == Activity.RESULT_OK) {
yourMethod();
}
}
}
答案 2 :(得分:0)
为什么不使用Actvity可以访问的单例类?