0

ダイアログとスレッドがあります。スレッドが終了したら、ダイアログを実行したいと思います。問題は実行される場合と実行されない場合があります。なぜこれが起こるのか理解できません。

どうすれば解決できますか?

/** display dialog */
private void showDialog(int status){
    final Dialog dialog = new Dialog(getView().getContext());
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    dialog.getWindow().setFlags(LayoutParams.FLAG_FULLSCREEN, LayoutParams.FLAG_FULLSCREEN);                        
    dialog.setContentView(R.layout.custom_dialog);
    dialog.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
    dialog.setCancelable(false);
    ImageView ivCustomDialog = (ImageView) dialog.findViewById(R.id.ivCustomDialog);

    Button dialogButton = (Button) dialog.findViewById(R.id.btnProsseguir);
    dialogButton.setOnClickListener(new OnClickListener() {             
        @Override
        public void onClick(View v) {                                           
            dialog.dismiss();                   
        }
    });             

    dialog.show();                      
}

スレッド

new Thread(){
    public void run(){
        int count = 0;
        while(count < 100){
            if(count >= 100){                                                       
                getActivity().runOnUiThread(new Runnable() {                                                        
                    @Override
                    public void run() {                                                             
                        showDialog(1);  
                        interrupt();
                    }
                });                                                         
            }
            count++;
        }
    }                                           
}.start();
4

1 に答える 1

1

有効なコンテキストを渡す方が良いです...コンテキストを適切に渡すと問題が発生します..AsyncTaskを使用する方が良いです...

http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html

于 2014-12-05T12:59:50.367 に答える