Намерение, помещенное в поток, который запускается с помощью onClickListener кнопки, выполняет намерение в 2-3 раза в зависимости от устройства. Есть ли способ это исправить? - PullRequest
0 голосов
/ 15 января 2019

Несколько намерений запускаются потоком, изменяющимся в зависимости от устройств, для которых нужно запустить только одно намерение.

Thread thread = new Thread(new Runnable(){
@Override
 public void run() {
   try{
       Intent i = new Intent(this, Result.class);
       startActivity(i);
   }catch (Exception e){
      Log.d("MyClient.java", "Problem in Thread :- " + e);
      final String error = e.toString();
      new Handler(Looper.getMainLooper()).post(new Runnable() {
      @Override
      public void run() {
          new AlertDialog.Builder(this).setTitle("Some Error Occured").setMessage(""+error).setPositiveButton(android.R.string.ok, listener).setCancelable(false).create().show();
          }
      });
    }
 }
});
thread.start();

Что я хочу и должно произойти, так это то, что Намерение я должен быть запущен только один раз, но вместо этого: -

  • 3 новых намерения запущены в Galaxy S8 + (под управлением Oreo 8.0) и Redmi 6 Pro (под управлением Oreo 8.1.0)
  • 2 новых намерения запущены в Moto E4 Plus (под управлением Nougat 7.1)
  • только одно намерение запускается в LD_Player (эмулятор под управлением Lollipop 5.1.1) и Galaxy S5 (под управлением Marshmallow 6.0.1)
...