Android:需要异步线程吗?

Android:需要异步线程吗?,android,android-asynctask,android-activity,Android,Android Asynctask,Android Activity,我正在创建一个应用程序,其中包括从Assets文件夹中的文本文件中读取数据。对于每个文件,它将数据存储在单独的ArrayList中。这些文件在活动的onCreate方法中一个接一个地读取。所有文本文件的总和为1.8 MB,在emulator上加载活动当前需要12秒。应用程序不会在模拟器上崩溃,只需大约12秒 我读过关于异步线程的书,但在过去我从未需要过异步线程。我计划用某种消息或进度条通知用户活动实际上正在加载并且没有崩溃 因此,我的问题是:即使应用程序在加载活动时没有崩溃,我还是应该将文件读取

我正在创建一个应用程序,其中包括从Assets文件夹中的文本文件中读取数据。对于每个文件,它将数据存储在单独的ArrayList中。这些文件在活动的onCreate方法中一个接一个地读取。所有文本文件的总和为1.8 MB,在emulator上加载活动当前需要12秒。应用程序不会在模拟器上崩溃,只需大约12秒

我读过关于异步线程的书,但在过去我从未需要过异步线程。我计划用某种消息或进度条通知用户活动实际上正在加载并且没有崩溃

因此,我的问题是:即使应用程序在加载活动时没有崩溃,我还是应该将文件读取放在异步线程还是其他线程上?如果是这样的话,我该如何正确地去做呢?我以前从未做过

下面是读取文本文件的示例代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_name);

    populateArrayLists();

}

public void populateArrayLists() {
    BufferedReader br = null;
    try {
        br = new BufferedReader(new InputStreamReader(getAssets().open(
                "text1.txt")));
        String text;
        while ((word = br.readLine()) != null) {
            ArrayList1.add(text);
        }                           
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            br.close(); // stop reading
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }


    br = null;
    try {
        br = new BufferedReader(new InputStreamReader(getAssets().open(
                "text2.txt")));

    // the same process is duplicated for 1-15
    // it may not be the best or most efficient way but it works

如果您有任何帮助,我们将不胜感激。

是的,您需要一个后台线程。这可能是你最容易的赌注

这将允许您在加载文件时至少显示一个通知并提供一些内容。如果这是您正在做的,甚至可以加载它们并以增量方式显示数据


编辑:加载程序是中提供的3.0功能。如果您不愿意添加依赖项,您可以随时返回,在这种情况下,您可以查看。

如果可能,您愿意帮助我开始将其与我现有的绑定起来吗?我已经有一段时间没有使用Android了,因此我无法真正花时间编写代码,这需要大量重新学习,但是欢迎你和我建立一个聊天室,我会在我划船时帮你。实际上,我已经打开了另一个问题,专门为我的尝试看我的链接问题。请随意看看我的尝试,也许它会激发一些东西?并输入您的输入。