Android AsyncTask 中的 ArrayList

Posted

技术标签:

【中文标题】Android AsyncTask 中的 ArrayList【英文标题】:ArrayList in Android AsynTask 【发布时间】:2020-04-04 19:06:20 【问题描述】:

如何创建一个类 AsynkTask,其中填充了 DataContainer 类。继续用合成数据填充类 DataContainer。在每个新的记录之后,应该暂停 AsynkTask 类一小段时间(200 毫秒)。?

public class DataContainer  
    public ArrayList<String> mGlobalDataStore1 = initializeData();

    static ArrayList<String> initializeData()
        ArrayList<String> data = new  ArrayList<String>();
        for (Integer i=0; i<100; i++)
            data.add("Item " + i.toString());
        
        return data;
    




public class TestTask extends AsyncTask<Character, String, ArrayList<String>> 

     @Override
    protected ArrayList<String> doInBackground(Character... integers) 


        return null;
    

    @Override
    protected void onProgressUpdate(String... values) 


    

    @Override
    protected void onPostExecute(ArrayList<String> s) 



    


如何在 AsyncTask 类中实现 DataContainer 类?

public class MainActivity extends AppCompatActivity 
    private ProgressBar progressBar;
    private AsyncTask asyncTask;
    private RecyclerView recyclerView;
    private DataContainer fragment;
    private TextView textView;







    @Override
    public boolean onCreateOptionsMenu(Menu menu) 
        MenuInflater inflater= getMenuInflater();
        inflater.inflate(R.menu.refresh, menu);
        return true;
    

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) 
        switch (item.getItemId())
            case R.id.item1:
                Toast.makeText(this,"erfolgreich",Toast.LENGTH_SHORT).show();
                return true;
                default:
                    Toast.makeText(this," nicht erfolgreich",Toast.LENGTH_SHORT).show();
        


        return false;
    




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

        progressBar=findViewById(R.id.progressBar);
        textView=findViewById(R.id.textView);


【问题讨论】:

【参考方案1】:

我了解这不是您要寻找的答案。但 android 11 已弃用 AsyncTask api。阅读this 链接了解更多信息

【讨论】:

以上是关于Android AsyncTask 中的 ArrayList的主要内容,如果未能解决你的问题,请参考以下文章

android中的asynctask可不可以并行执行多个

就像 android 中的 AsyncTask 一样,iOS 中的等价物

如何从android中的AsyncTask类中获取数据?

如何从 android 中的 AsyncTask 获取 UI 参考

android中AsyncTask中的ProgressDialog

如何在 Android 中以编程方式隐藏 AsyncTask 中的 ProgressBar?