android-如何实现加载屏幕以防止用户在进行后台处理时与界面进行交互

android-如何实现加载屏幕以防止用户在进行后台处理时与界面进行交互,第1张

概述在我的新应用中,我需要在进行一些处理时显示动画(例如,将数据发送到服务器,从Web服务读取数据等).像这样:当我想实现类似的东西时,这就是我曾经做过的事情:<LinearLayoutxmlns:android="http://schemas.android.com/apkes/android"android:layout_width="match_parent"

在我的新应用中,我需要在进行一些处理时显示动画(例如,将数据发送到服务器,从Web服务读取数据等).

像这样:

当我想实现类似的东西时,这就是我曾经做过的事情:

<linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    androID:orIEntation="vertical" >       <relativeLayout        androID:ID="@+ID/sincronizarSpinnerLayout"        androID:layout_wIDth="match_parent"        androID:layout_height="match_parent"        androID:visibility="gone" >        <Progressbar            androID:ID="@+ID/pbheaderProgress"                        androID:layout_wIDth="wrap_content"            androID:layout_height="wrap_content"            androID:layout_centerInParent="true" >        </Progressbar>    </relativeLayout>    <relativeLayout>      <!--Main content here-->    </relativeLayout>  </linearLayout>

如您所见,我有两个嵌套的相对布局.默认情况下,第一个布局是不可见的(androID:visibility =“ gone”),并且只有在启动Service,AsyncTask或异步技术时才使它可见.

尽管我过去曾经使用过这种方法,但是现在我的主布局(应该放在第二个相对布局内)更加复杂,但我不确定使事情变得更加复杂不是一个好主意.为我的活动添加另一个嵌套级别.

>有什么方法可以避免必须为所有其他布局添加其他布局@H_404_19@我需要显示微调动画的活动?也许
我不知道有某种模式或良好做法.
>我真的需要担心为我的图层添加另一个嵌套级别吗
    活动,知道我已经有两个或三个级别?

谢谢.

@R_403_6120@:

您可以简单地使用ProgressDialog并使用setCanceledOntouchOutsIDe(false),以便在AsyncTask工作时用户无法触摸外部.

这是我在使用AsyncTask的项目中几乎使用的结构代码.您可以申请您的项目:

public class DownloadTask extends AsyncTask<VoID, VoID, VoID> {    private ProgressDialog mProgressDialog;    private Context mContext;    public DownloadTask(Context context) {        this.mContext = context;    }    @OverrIDe    protected voID onPreExecute() {        super.onPreExecute();        mProgressDialog = ProgressDialog.show(mContext, "Downloading", "Downloading Data ...");        mProgressDialog.setCanceledOntouchOutsIDe(false); // main method that force user cannot click outsIDe        mProgressDialog.setCancelable(true);        mProgressDialog.setonCancelListener(new DialogInterface.OnCancelListener() {            @OverrIDe            public voID onCancel(DialogInterface dlg) {                DownloadTask.this.cancel(true);            }        });    }    @OverrIDe    protected VoID doInBackground(VoID... params) {        // do some background work here    }    @OverrIDe    protected voID onPostExecute(VoID result) {        if (this.isCancelled()) {            result = null;            return;        }        if (mProgressDialog != null) {            mProgressDialog.dismiss();        }    }}

希望这个帮助:)

总结

以上是内存溢出为你收集整理的android-如何实现加载屏幕以防止用户在进行后台处理时与界面进行交互全部内容,希望文章能够帮你解决android-如何实现加载屏幕以防止用户在进行后台处理时与界面进行交互所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1090335.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存