Thu*_*rme 6 android android-intent android-activity
我有一个活动A有这个功能:
public void onSettingsClick(View view){
Intent intent = new Intent(this, Settings.class);
startActivity(intent);
checkSettings();
}
Run Code Online (Sandbox Code Playgroud)
有没有办法让活动A等待活动B("Settings.class")完成执行功能"checkSettings();" ?
谢谢
编辑:我可能误解了你的问题.如果要在B中运行checkSettings()函数,则需要在B活动中定义并调用该函数.
否则,如果要在运行checkSettings()之前等待活动B结束,请复制以下代码.
在一个:
public void onSettingsClick(View view){
Intent intent = new Intent(this, Settings.class);
startActivityForResult(intent, 1);
}
Run Code Online (Sandbox Code Playgroud)
然后也在A Override onActivityResult方法..当B结束时调用它:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
checkSettings();
}
Run Code Online (Sandbox Code Playgroud)
在您的活动中写
public void onSettingsClick(View view){
Intent intent = new Intent(this, Settings.class);
startActivityForResult(intent, 100);
}
Run Code Online (Sandbox Code Playgroud)
并且在您的活动中重写onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK){
if(requestCode==100){
checkSettings();
}
}
}
Run Code Online (Sandbox Code Playgroud)
在你的活动B中
当您想完成该活动时,在那写下代码
Intent returnIntent = new Intent();
setResult(RESULT_CANCELED, returnIntent);
finish();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5682 次 |
| 最近记录: |