㈠ android activity单实例化什么意思
意思就是这个Activity只能有一个实例(如果被多次启动的话)x0dx0ax0dx0amanifest.xml里面配置 在activity标签下的属性x0dx0ax0dx0aandroid:launchMode="standard"x0dx0a有4种可以选 默认就是上面这种,,标准的 每次startActivity都会实例化一个实例x0dx0a还有3种:singleTop 启动此模式的activity的时候 如果在堆栈顶部已经有这个activity的实例则不重新实例化,就用堆栈顶部这个 否则就实例化一个新的activity对象x0dx0a singleTask 启动此模式的activity的时候 如果在堆栈中存在此activity的实例(任意位置),则不重新实例化activity对象 而是直接复用之前的activity对象 在这个activity对象上面的其他activity对象全部移除(相当于这些activity被销毁了);这个应该就是你说的单实例化x0dx0a singleInstance 这个是单个实例 会单独启动一个堆栈来存放此启动模式的activity实例!
㈡ Android 中怎样调用其它类的中的方法
1、定义其他类
java">publicclassOther{//定义一个普通类
publicvoidshow(){//定义一个普通方法
}
publicstaticvoidcal(){//定义类的静态方法
}
}
2、实例化其他类或者调用其他类的静态方法
在android中调用:
Otherot=newOther();//实例化Other类
ot.show();//调用Other类的普通方法
Other.cal();//类名.方法的方法调用静态方法
㈢ android中的对象实例化问题
完整的的写法是
this.getIntent();
this可以省略
㈣ android 大量控件实例化不方便。
首先需要说的是,findViewById只是查找到对象的引用,不应该叫做控件的实例化,
实例化是创建出一个新的对象
当程序中控件数量太多时,findviewbyid代码将会很多,很繁琐,所以我们需要方法来简化他
方法一:定义一个BaseActivity,所有activity都继承这个BaseActivity,用一个$号来作为findviewbyid的作用,$在java中是合法的方法名
如下
{
public<TextendsView>T$(intid){
return(T)findViewById(id);
}
}
当我们需要获得控件引用时只需要使用一个$符号就行
Button btn = $(R.id.button);
而且不用强制转换,节省了很多findviewbyid的代码
方法二:使用网络上的开源框架,比如AndroidButterknife框架,使用注解来简化findviewbyid
{
@InjectView(R.id.button)
privateButtonbutton;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
.....
ButterKnife.inject(this);
}
}
只要在view上加上@InjectView注解,并在onCreate里调用ButterKnife.inject即可