مهمة غير متزامنة لإظهار AlertDialog

خلال الأيام القليلة الماضية ، لم أتمكن من حل مشكلة في مربع الحوار الخاص بي. أقوم بتشغيل موضوع لإظهار مربع الحوار لمدة 5000 مللي ثانية وإزالته. وأنا أحاول إظهار نخب ("النجاح"). المشكلة هي أنني أحصل على مربع الحوار للمرة الثانية أيضًا. أنا جديد في تطوير Android وأحتاج إلى حل هذه المشكلة باستخدام Async Task حتى أتمكن من تأخير الخيط الثاني وإظهار مربع حوار تنبيه باستخدام زر إيجابي بدلاً من الخبز المحمص. لقد تأثرت كثيرًا ولكنني في حيرة من أمري لتنفيذ هذا

هنا أقوم بإرسال بيانات الاعتماد الخاصة بي إلى الخادم وأثناء الإرسال ، أقوم بعرض مربع حوار تقدم لمدة 5000 مللي ثانية وأريد الحصول على سلسلة محادثات منفصلة لإظهار مربع الحوار. مع زر موجب. (عندما يحصل المستخدم على رد في logcat لذلك يجب أن أتحقق من رمز Respecode == 1 أو ليس من logcat لإظهار المنشئ)

ساعدني شخص ما في حل هذا مع بعض مقتطف الشفرة إذا ممكن.

شكرًا مقدمًا.

هذا هو الكود الذي أحتاج فيه إلى تنفيذ مهمة Async

Button signin = (Button) findViewById(R.id.regsubmitbtn);
    signin.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // showDialog(0);
            t = new Thread() {
                public void run() {
                    register();
                    try {
                        while (counter < 2) {
                            showmsg(0);
                            Thread.sleep(5000);
                            removeDialog(0);
                            // Toast.makeText(Register.this, "Registerd", Toast.LENGTH_LONG).show();
                            showmsg(1);
                            // toast.show();

                            Thread.sleep(1000);

                        }

                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            };
            t.start();
        }
    });

}

@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case 0: {
        ++counter;
        dialog = new ProgressDialog(this);
        if (counter == 1) {
            dialog.setMessage("Registering...");
        }
        else {
            String resultsRequestSOAP = "";
            if (Log.v("TAG", String.valueOf(resultsRequestSOAP)) == 1)
                ;
            {
                Context context = getApplicationContext();
                CharSequence text = "Registerd";
                int duration = Toast.LENGTH_LONG;

                Toast toast = Toast.makeText(context, text, duration);
                toast.show();
            }
        }
        dialog.setIndeterminate(true);
        dialog.setCancelable(true);
        return dialog;
    }
    }
    return null;
}

public void showmsg(int actionsToBePerformedOnScreen) {
    Message msg = new Message();
    msg.what = actionsToBePerformedOnScreen;
    handler.sendMessage(msg);

}

public Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
        case 0:

            showDialog(0);

            break;

        case 1:
            // clear all images in the list
            removeDialog(0);
            break;

        }

    };
};
5
задан Seraphim's 18 March 2014 в 15:56
поделиться