как вызвать метод, когда исключение происходит внутри потока

У меня есть thread, который вызывает метод, и если возникает какое-либо исключение, он возвращается в блок catch этого потока.

позже, тогда мне нравится называть обработчик или тост-сообщение, чтобы отображать исключение, но я не мог вызвать его, чтобы отобразить ошибку.

что я должен сделать, чтобы решить проблему, любую идею.

заранее спасибо.

private void onSaveDialog() {       

    final ProgressDialog dialog = new ProgressDialog(this);

    dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    dialog.setTitle("mApprove Advantage");
    dialog.setIcon(R.drawable.mapprove1);
    dialog.setMessage("Theme setting is in progress...");
    dialog.setIndeterminate(false);
    dialog.setCancelable(false);
    dialog.show();
    new Thread() {
        @Override
        public void run() {
            try {

                Thread.sleep(5000);     
                synchronized (this) {
                onsave();
            }
                dialog.cancel();
                onSetting();
            } catch (Exception e) {
                dialog.cancel();
                wrongurl=true;
                onFinishDialog1();
                System.out.println("url wrong");

            }

        }           
    }.start();  
    }

private void onFinishDialog1(){
    if(wrongurl){
        wrongurl=false;
        Toast.makeText(getApplicationContext(),
                "URL not Available.", Toast.LENGTH_LONG)
                .show();
    }

}
0
добавлено отредактировано
Просмотры: 1
de
разместите свой код, что вы пробовали до сих пор?
добавлено автор Pratik Sharma, источник
разместите свой код, что вы пробовали до сих пор?
добавлено автор Pratik Sharma, источник
разместите свой код, что вы пробовали до сих пор?
добавлено автор Pratik Sharma, источник
«но я не мог назвать это, чтобы отобразить ошибку». - Зачем?
добавлено автор Simon, источник
«но я не мог назвать это, чтобы отобразить ошибку». - Зачем?
добавлено автор Simon, источник
я не знаю, поток не позволяет вызывать какой-либо метод или обработчик, когда он получает ошибку
добавлено автор saran, источник
я не знаю, поток не позволяет вызывать какой-либо метод или обработчик, когда он получает ошибку
добавлено автор saran, источник

8 ответы

Использовать это :

runOnUiThread(new Runnable() 
        {                
          @Override
          public void run() 
            {
            try {

                Thread.sleep(5000);     
                synchronized (this) {
                onsave();
            }
                dialog.cancel();
                onSetting();
            } catch (Exception e) {
                dialog.cancel();
                wrongurl=true;
                onFinishDialog1();
                System.out.println("url wrong");

            }
          }
 });

Благодарю.

0
добавлено
спасибо, много работает
добавлено автор saran, источник

Использовать это :

runOnUiThread(new Runnable() 
        {                
          @Override
          public void run() 
            {
            try {

                Thread.sleep(5000);     
                synchronized (this) {
                onsave();
            }
                dialog.cancel();
                onSetting();
            } catch (Exception e) {
                dialog.cancel();
                wrongurl=true;
                onFinishDialog1();
                System.out.println("url wrong");

            }
          }
 });

Благодарю.

0
добавлено
спасибо, много работает
добавлено автор saran, источник

Использовать это :

runOnUiThread(new Runnable() 
        {                
          @Override
          public void run() 
            {
            try {

                Thread.sleep(5000);     
                synchronized (this) {
                onsave();
            }
                dialog.cancel();
                onSetting();
            } catch (Exception e) {
                dialog.cancel();
                wrongurl=true;
                onFinishDialog1();
                System.out.println("url wrong");

            }
          }
 });

Благодарю.

0
добавлено
спасибо, много работает
добавлено автор saran, источник

Использовать это :

runOnUiThread(new Runnable() 
        {                
          @Override
          public void run() 
            {
            try {

                Thread.sleep(5000);     
                synchronized (this) {
                onsave();
            }
                dialog.cancel();
                onSetting();
            } catch (Exception e) {
                dialog.cancel();
                wrongurl=true;
                onFinishDialog1();
                System.out.println("url wrong");

            }
          }
 });

Благодарю.

0
добавлено
спасибо, много работает
добавлено автор saran, источник

используйте runOnUiThread для показа тостов сообщение от темы как:

  //your code here
  } catch (Exception e) {
    Your_Activity.this.runOnUiThread(new Runnable() {
          public void run() {
            dialog.cancel();
            wrongurl=true;
            onFinishDialog1();
          //show your message here
            Toast.makeText(Your_Activity.this, "Error", Toast.LENGTH_LONG).show(); 

          }
     });
   }
0
добавлено

используйте runOnUiThread для показа тостов сообщение от темы как:

  //your code here
  } catch (Exception e) {
    Your_Activity.this.runOnUiThread(new Runnable() {
          public void run() {
            dialog.cancel();
            wrongurl=true;
            onFinishDialog1();
          //show your message here
            Toast.makeText(Your_Activity.this, "Error", Toast.LENGTH_LONG).show(); 

          }
     });
   }
0
добавлено

используйте runOnUiThread для показа тостов сообщение от темы как:

  //your code here
  } catch (Exception e) {
    Your_Activity.this.runOnUiThread(new Runnable() {
          public void run() {
            dialog.cancel();
            wrongurl=true;
            onFinishDialog1();
          //show your message here
            Toast.makeText(Your_Activity.this, "Error", Toast.LENGTH_LONG).show(); 

          }
     });
   }
0
добавлено

используйте runOnUiThread для показа тостов сообщение от темы как:

  //your code here
  } catch (Exception e) {
    Your_Activity.this.runOnUiThread(new Runnable() {
          public void run() {
            dialog.cancel();
            wrongurl=true;
            onFinishDialog1();
          //show your message here
            Toast.makeText(Your_Activity.this, "Error", Toast.LENGTH_LONG).show(); 

          }
     });
   }
0
добавлено