Androidで非同期にレイアウトをロードするにはどうすればよいですか?

Android では、非同期タスク(AsyncTask)を使用してレイアウトを非同期にロードできます。以下に例を示します。

  1. 非同期処理を実行するのに、AsyncTaskを継承するクラスを作成します。
public class LoadLayoutTask extends AsyncTask<Void, Void, View> {
    private Context mContext;
    private LayoutInflater mInflater;
    private int mLayoutResId;
    private ViewGroup mContainer;

    public LoadLayoutTask(Context context, int layoutResId, ViewGroup container) {
        mContext = context;
        mInflater = LayoutInflater.from(context);
        mLayoutResId = layoutResId;
        mContainer = container;
    }

    @Override
    protected View doInBackground(Void... voids) {
        // 在后台线程中加载布局
        return mInflater.inflate(mLayoutResId, mContainer, false);
    }

    @Override
    protected void onPostExecute(View view) {
        // 在主线程中将加载好的布局添加到容器中
        mContainer.addView(view);
    }
}
  1. レイアウトのロードが必要箇所でインスタンスを作成し、非同期タスクを実行する
LoadLayoutTask task = new LoadLayoutTask(this, R.layout.my_layout, container);
task.execute();

この其中で、this は現在のコンテキストで、R.layout.my_layout は読み込むレイアウトリソースの ID で、container はレイアウトを追加するコンテナです。

bannerAds