0

バックグラウンドスレッドを実行しています。バックグラウンド スレッドが正常に実行された後、UI でユーザーに警告メッセージを表示したいと考えています。

4

4 に答える 4

2

で作業しAsynTaskた場合は、で表示できますonPostExecute()http://www.mysamplecode.com/2011/09/android-asynctask-httpclient-with.html

AlertDialog alertDialog = new AlertDialog.Builder(
                        AlertDialogActivity.this).create();


    // Setting Dialog Title
    alertDialog.setTitle("Alert Dialog");

    // Setting Dialog Message
    alertDialog.setMessage("Welcome to AndroidHive.info");

    // Setting OK Button
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
            // Write your code here to execute after dialog closed
            Toast.makeText(getApplicationContext(), "You clicked on OK", Toast.LENGTH_SHORT).show();
            }
    });

    // Showing Alert Message
    alertDialog.show();

アラートの詳細については、http: //www.androidhive.info/2011/09/how-to-show-alert-dialog-in-android/ を参照してください。

于 2012-04-17T04:29:11.547 に答える
0

AsyncTaskを使用している場合は、メッセージ (おそらくトースト) を表示するためのコードをonPostExecute().

于 2012-04-17T04:29:41.947 に答える
0

バックグラウンド スレッドを UI に接続することは不可能ではありません。ハンドラーの助けを借りて、メッセージを送信できます。そのメッセージをチェックすることで、アラート メッセージを表示できます。このコードが役立つと思います。

Thread animator = new Thread() {
        public void run() {
            int i = 0;
            try {
                sleep(4000);
                while (i < 4) {
                    sleep(50);
                    handler.sendMessage(handler.obtainMessage(i));
                    i++;
                }
            } catch (Exception e) {

            }
        }
    };
    animator.start();
    handler = new Handler() {

        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if (msg.what == 0) {
                animatedimage.setImageResource(R.drawable.sub1);
            } else if (msg.what == 1) {
                animatedimage.setImageResource(R.drawable.sub2);
            } else if (msg.what == 2) {
                animatedimage.setImageResource(R.drawable.sub3);
            } else if (msg.what == 3) {
                animatedimage.setImageResource(R.drawable.sub4);
            }
        }

    };

Assync tasy を使用している場合は、

onPostExecute()
于 2012-04-17T04:32:09.003 に答える
0

非同期スレッドを起動します。非同期スレッドは、OnPreExecute()、doInBackground()、および onPostExecute() の 3 つのメソッドを提供します。

最初と最後のメソッドは UI スレッドで呼び出されるため、doInBackground での操作は一度

于 2012-04-17T04:32:44.167 に答える