我正在开发一个 Android 应用程序。我有一个活动来检查我的设备上是否存在 XML 文件。如果它不存在,我会调用一个例程来做很多事情,包括从 URL 下载该文件。
如果确实存在,我想提示(是/否)用户查看他们是否要重新下载文件,或者只是跳过它。
我从使用对话框开始。我看到的讨论说Dialogs只是异步的,所以我切换到使用Activity来提示Yes/No。
进一步阅读后,我相信真正的答案是使用startActivity()
异步启动一个活动,但使用startActivityForResult()
同步设置它(阻塞)。这个说法正确吗?
好的,假设我上面的陈述是正确的,我一直在研究如何回到我在代码流中的原始起点,知道用户选择了哪个按钮(是/否)。
所有的例子都告诉我,我需要使用它来获得我的结果。
protected void onActivityResult(int requestCode, int resultCode,Intent data) {
}
我正在努力解决如何将其放入我的代码中以使其更容易流动。我看到很多示例显示所需的代码片段,但我不清楚它们是如何组合在一起的。我的代码结构是否最终是这样的:
public class MainScreen extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
protected void onButtonClick(parameters) {
/* Do some work to see if the file exists */
if (!file.exists()) {
runComplexRoutine(various_parameters);
} else {
Intent myIntent = new Intent(getBaseContext(), PromptingActivity.class);
myIntent.putExtra("filename", variable_holding_filename); // Just passing a parameter to use in the title of the caled Activity
startActivityForResult(myIntent, 1);
// Point A
}
}
protected void onActivityResult(int requestCode, int resultCode,Intent data) {
if (resultsCode == Activity.RESULT_OK) {
runComplexRoutine(various_parameters);
}
// else, do nothing...
}
}
我的问题是我必须通过很多various_parameters
地方。如果我能在 处恢复流量就好了Point A
,但这似乎是不可能的。我在这里正确吗?