【问题标题】:How to check if an activity is continuing如何检查活动是否继续
【发布时间】:2023-04-09 09:47:01
【问题描述】:

在我的应用程序中,我试图通过照片编辑器运行多张照片(一次一张)。我现在将它设置在一个 for 循环中,但我觉得它正在使照片编辑器超载,实际上并没有等到当前编辑会话结束,所以我想在我的 for 循环中放置一个控制语句来检查会话是否仍处于活动状态。

这可能吗?

【问题讨论】:

    标签: android for-loop aviary


    【解决方案1】:

    比轮询查看它是否仍处于活动状态更容易判断电流何时结束。如果您以startActivityForResult 开头,您的调用活动将在被调用活动结束时收到通知。

    Activity docs 中的启动活动和获取结果为例。

    【讨论】:

    • 那么onActivityResult()会在activity完成后启动吗?
    • 是的。当被调用的Activity 结束时,调用活动上的onActivityResult 就会运行。
    • 我在片段中运行这段代码。我在 Override/implement 方法中寻找 onActivityResult,但我找不到它。它还能在 Fragment 中工作吗?
    • 没关系我是个白痴。已经实现了,只是没看到。
    【解决方案2】:

    您可能还想考虑在异步任务中运行它。这将使您的繁重处理远离 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;
    }
    

    【讨论】:

    • 我已经在扩展片段了,所以我不能扩展其他东西。
    • 您不需要扩展您的主要活动。我会更新一个例子。
    猜你喜欢
    • 1970-01-01
    • 2015-01-13
    • 1970-01-01
    • 2019-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    相关资源
    最近更新 更多