java - 按顺序运行 3 个公共(public)空间(在每个空间完成其任务后)

标签 java android

我有 3 个公共(public)空间。第一个 void 解析 pdf 文件。第二个 void 将该 pdf 文件增强为 string ,第三个 void 使用该字符串以编程方式显示 TextView (在 for 循环中)。当调用所有这些空洞时,应用程序会崩溃,因为它们都试图同时运行。我希望他们互相等待对方完成任务。我不想创建一个包含所有组件的大空间。

我怎样才能给他们打电话,让他​​们互相等待完成?

最佳答案

尝试使用Runnable数组

数组:

Runnable[] methods = new Runnable[]{
                new Runnable() {
                    @Override
                    public void run() {
                        Log.d("TAG", "1");
                       //1 method
                    }
                },
                new Runnable() {
                    @Override
                    public void run() {
                        Log.d("TAG", "2");
                         //2 method
                    }
                },
                new Runnable() {
                    @Override
                    public void run() {
                        Log.d("TAG", "3");
                        //3 method
                    }
                }
        };

调用它:

ExecutorService service = Executors.newSingleThreadExecutor();
            for (Runnable r : methods)
                service.submit(r);
            service.shutdown();

关于java - 按顺序运行 3 个公共(public)空间(在每个空间完成其任务后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45378380/

相关文章:

java - 锁定两种方法但允许一种方法运行多线程

java - GroupLayout 未正确对齐

android - 死函数不会从 Android NDK 构建的共享对象中删除

Android:检查谷歌设置位置是否已启用

java - 在 Mosby 和 Dagger 2 的 Base Presenter 中使用泛型

java - 从 Java 字符串转换为 Windows-1252 格式

java - BooleanFieldEditor 不从 PreferenceStore 加载值

Java Concurrent - 没有 speedUp 获得 LU 算法 - 虚假共享?

java - 无法使用 Spring Cacheable 在 Aerospike Cache 中添加记录

android - 如何判断通知栏是否在android中被拉下