我想知道当我通过Intent启动时,活动的对象是什么。
这意味着:我如何调用活动Activity的Object。或者我得到了什么错误,一个活动是由一个对象代表的?
示例:在MainActivity中我执行:
ShowExampleScreen = new Intent(MainActivity.this, ExampleClass.class);
startActivity(ShowExampleScreen);
public class ExampleClass{
oncreate( Stuff in on create)
public void myFunction(){ my stuff}
}
如何在不声明静态的情况下在其他类中使用myFunc? 我怎样才能获得由Intent启动的Activity的对象?
答案 0 :(得分:0)
在Android中,这就是Activity生命周期的工作方式:
我建议你先开始reading from here清除基础知识。
根据指南,你不应该从另一个
调用一个Activity的方法但是,您可以使用startActivityForResult
。即您可以启动活动并获取结果。 See this用于实施
答案 1 :(得分:0)
有多种方法可以实现,以下是我使用的几种方法:
来自另一个班级/方法:
只需将Activity作为参数传递,因为您需要最新的活动对象,所以您不希望将其存储在活动被销毁后可能变为null的位置。
从其他类中非常深的方法:
我不是真的推荐这个,但我有时这样做,只是在活动本身创建一个活动的静态对象,并确保每次活动更新时都分配它,让我们说onResume方法或onCreate
public static Activity app; //in your Activity as a field (instance variable)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
app = this;
}
来自片段:
MyActivity app =(MyActivity)getActivity(); // getActivity()是一个Fragment方法。