我有这段代码:
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intent = new Intent(this, ConnectDialog.class);
update();
}
private void update(){
if(a)
startActivity(intent);
else{
//code
}
}
}
而且:
public class ConnectDialog extends Activity{
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_connect_dialog);
btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
finish();
}
});
}
}
问题是:当我点击Intent的按钮时,是否可以再次执行主活动的方法更新?非常感谢你
答案 0 :(得分:0)
只需将update
的电话转入onResume()
的{{1}}即可。这样,它将在首次启动时调用,并在稍后再次显示MainActivity
时调用:
MainActivity
答案 1 :(得分:0)
我会使用onActivityResult
方法。
将update
方法更改为
int YOUR_RESULT = 100;
private void update(){
if(a)
startActivityForResult(intent, YOUR_RESULT);
else{
//code
}
}
然后在同一个活动中,使用此方法:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == YOUR_RESULT) {
update();
}
}
如果您使用此方法,则只有在从该活动返回时才会调用update()
方法。
答案 2 :(得分:0)
如果您检查Android生命周期,您将得到更新未执行的答案。 如何在点击时调用更新方法..
private void update(){
if(a)
startActivityForResult(intent, 0);
else{
//code
}
}
并使用onActivityResult再次调用update方法
@Override
protected void onActivityResult(int arg0, int arg1, Intent arg2) {
super.onActivityResult(arg0, arg1, arg2);
update();
}