gpt4 book ai didi

java - 进度对话框 : android. view.WindowLeaked:已泄漏最初在此处添加的窗口 DecorView@6995336[]

转载 作者:行者123 更新时间:2023-12-02 11:36:08 26 4
gpt4 key购买 nike

我尝试在回收器 View 中更改设备的方向,但当进度对话框显示时它总是崩溃。

如何解决这个问题?

这是我的代码:

私有(private)类 LoadOrdersListAgent 扩展了 AsyncTask {

    @Override
protected void onPreExecute() {
dialog = new ProgressDialog(OrdersActivity.this);
ordersList = new ArrayList<>();
rvor = findViewById(R.id.recycler_view_orders_agent);
emptytv = findViewById(R.id.empty_view_orders_agent);
emptytv.setVisibility(View.GONE);
rvor.setHasFixedSize(true);
rvor.setLayoutManager(new LinearLayoutManager(OrdersActivity.this));
rvor.setItemAnimator(new DefaultItemAnimator());

dialog.setMessage("Loading....");
dialog.show();
}

@Override
protected void onPostExecute(Void aVoid) {
final OrdersAdapter adapter = new OrdersAdapter(getApplicationContext(), ordersList);
rvor.setAdapter(adapter);
rvor.setLayoutManager(new LinearLayoutManager(OrdersActivity.this));
srl.setRefreshing(false);

if (dialog.isShowing()) {
dialog.dismiss();
}

if (ordersList.isEmpty()) {
Log.d("TESTING.....", "LIST OF ORDERS ----->" + ordersList);
rvor.setVisibility(View.GONE);
srl.setVisibility(View.GONE);
emptytv.setVisibility(View.VISIBLE);
} else {
rvor.setVisibility(View.VISIBLE);
srl.setVisibility(View.VISIBLE);
emptytv.setVisibility(View.GONE);
}
}

@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}

@Override
protected Void doInBackground(Void... voids) {
ordersList = OrdersApi.getOrders(url, key);
return null;
}
}

private void swipeOrderLayout() {
srl = findViewById(R.id.swipe);

srl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
if (new CheckNetworkUtil(OrdersActivity.this).isNetworkAvailable()) {
new LoadOrdersListAgent().execute();

//新的 LoadOrdersListAdmin().execute(); } 别的 Toast.makeText(OrdersActivity.this, "没有互联网连接!", Toast.LENGTH_SHORT).show(); srl.setRefreshing(假); } }); }

最佳答案

当我在不关闭进度对话的情况下完成/销毁 Activity 时收到此错误。

解决方案使用 dialog.dismiss(); 在销毁或暂停 Activity 之前关闭进度对话框

在您的情况下,删除 if 条件并仅在 postExecute 方法中调用 dialog.dismiss();

关于java - 进度对话框 : android. view.WindowLeaked:已泄漏最初在此处添加的窗口 DecorView@6995336[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48918580/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com