【发布时间】:2023-04-09 09:47:01
【问题描述】:
在我的应用程序中,我试图通过照片编辑器运行多张照片(一次一张)。我现在将它设置在一个 for 循环中,但我觉得它正在使照片编辑器超载,实际上并没有等到当前编辑会话结束,所以我想在我的 for 循环中放置一个控制语句来检查会话是否仍处于活动状态。
这可能吗?
【问题讨论】:
在我的应用程序中,我试图通过照片编辑器运行多张照片(一次一张)。我现在将它设置在一个 for 循环中,但我觉得它正在使照片编辑器超载,实际上并没有等到当前编辑会话结束,所以我想在我的 for 循环中放置一个控制语句来检查会话是否仍处于活动状态。
这可能吗?
【问题讨论】:
比轮询查看它是否仍处于活动状态更容易判断电流何时结束。如果您以startActivityForResult 开头,您的调用活动将在被调用活动结束时收到通知。
以 Activity docs 中的启动活动和获取结果为例。
【讨论】:
Activity 结束时,调用活动上的onActivityResult 就会运行。
您可能还想考虑在异步任务中运行它。这将使您的繁重处理远离 UI 线程。异步任务让您也可以进行进度更新。
http://developer.android.com/reference/android/os/AsyncTask.html
public class MainActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.logo_page);
// Call async task.
my_async as = new my_async(this);
as.execute();
}
--
我的异步:
public class my_async extends AsyncTask<Object, Integer, String> {
private parentClass activity;
public my_async (parentClass activity) {
this.activity = activity;
}
@Override
protected String doInBackground(Object... arg0) {
// Do stuff
return "MyString";
}
protected void onPostExecute(String contents) {
activity.contents = contents;
}
【讨论】: