Android 参考onClick(视图v)方法中的意图
可以在onClick(视图v)方法之外创建一个Intent实例,并从onClick(视图v)方法中引用它,而不是使用上述方法吗?我认为您的意思是这样做:-Android 参考onClick(视图v)方法中的意图,android,Android,可以在onClick(视图v)方法之外创建一个Intent实例,并从onClick(视图v)方法中引用它,而不是使用上述方法吗?我认为您的意思是这样做:- public void onClick(View v) { switch(v.getId()) { case R.id.button1: Intent intent1 = new Intent(MainActivity.this,SecondActivity.class);
public void onClick(View v) {
switch(v.getId()) {
case R.id.button1:
Intent intent1 = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent1);
break;
case R.id.button2:
Intent intent2 = new Intent(MainActivity.this,ThirdActivity.class);
startActivity(intent2);
break;
}
}
这将使intent1成为全局的,并且将具有整个类的生命周期,而不仅仅是一个函数。一个全局变量将在活动完成后被垃圾收集,而另一个局部变量的生存期很短,并且只有在函数不退出时才有效
鼓励在活动的整个生命周期中都需要使用全局变量,否则会浪费内存。您尝试过吗??我认为这样做完全可以。有可能。。但是为什么要通过声明和初始化为全局实例来提供memeory for intent呢?这样做有安全问题吗?在全球范围内…谢谢vipul,Gopal是的,在内存方面,应该避免它。你为什么需要它?我的意思是,意图就像其他变量一样。你应该创造、使用和毁灭。全局是糟糕的设计感谢您指出全局意图可以在活动的整个生命周期内使用。欢迎您,如果此答案解决了您的问题,请将此问题标记为已解决。
Intent intent1;
public void onClick(View v) {
switch(v.getId()) {
case R.id.button1:
intent1 = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent1);
break;
case R.id.button2:
intent1 = new Intent(MainActivity.this,ThirdActivity.class);
startActivity(intent1);
break;
}
}