java如何注册和引用回调接口?
当我需要从活动B回调回活动a时,我通常将活动B中的引用变量设置为“静态”。我意识到,如果用户旋转设备,生命周期方法将删除我的引用
这是唯一的缺点吗?有没有更好的方法在没有静态引用的情况下注册。简单地将所有数据放在应用程序类中是否更好?-谢谢
public class MainActivity extends Activity implements InterfaceMainActivityTwo {
static Main2Activity main2Activity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
main2Activity = new Main2Activity();
main2Activity.setDataListener(this);
}
@Override
public void getDataMainActivityTwo(String string) {
tvTextData.setText(string);
}
}
public class Main2Activity extends Activity {
static InterfaceMainActivityTwo mGetDataInterface;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
}
public void getDataSaveBtn(View v) {
if (mGetDataInterface != null)
mGetDataInterface.getDataMainActivityTwo(fullName);
else
Toast.makeText(this, "IS NULL.INTERFACE NOT INITIALIZED !!!!", Toast.LENGTH_SHORT).show();
}
/////////// interface setup
interface InterfaceMainActivityTwo {
void getDataMainActivityTwo(String string);
}
public void setDataListener(InterfaceMainActivityTwo listener) {
this.mGetDataInterface = listener;
}
}
共 (0) 个答案