2016-01-18 17 views
0

我想运行2个方法,但不是在同一时间。然而,我试图既waitThread.sleep(),但它不会延迟方法2这是一种Intent如何正确推迟方法?

public void run() { 
    checkInternetConnection(); 
     try { 
      Thread.sleep(5000); 
     } catch (InterruptedException e) { 
      Thread.currentThread().interrupt(); 
     } 
    Intent intent = new Intent(this, Forside.class); 
    startActivity(intent); 
    finish(); 
} 
private void checkInternetConnection() { 

    if (br == null) { 

     br = new BroadcastReceiver() { 

      @Override 
      public void onReceive(Context context, Intent intent) { 

       Bundle extras = intent.getExtras(); 

       NetworkInfo info = (NetworkInfo) extras 
         .getParcelable("networkInfo"); 

       NetworkInfo.State state = info.getState(); 
       Log.d("TEST Internet", info.toString() + " " 
         + state.toString()); 

       if(state == NetworkInfo.State.DISCONNECTED) { 
        AlertDialog alert = new AlertDialog.Builder(context) 
          .setMessage("Fejl, der er ingen internet forbindelse. Venligst forbind til et netværk") 
          .setNeutralButton("ok", new DialogInterface.OnClickListener() { 
             @Override 
             public void onClick(DialogInterface dialog, int which) { 
              launchsettings(); 
             } 

            } 
          ).show(); 
       } 
      } 
     }; 

     final IntentFilter intentFilter = new IntentFilter(); 
     intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); 
     registerReceiver((BroadcastReceiver) br, intentFilter); 
    } 
} 

private void launchsettings() { 
    startActivityForResult(new Intent(Settings.ACTION_SETTINGS), 0); 
} 

@Override 
protected void onPause() { 
    this.unregisterReceiver(this.bur); 
    super.onPause(); 
} 

这两种方法在同一时间启动,或者2.方法1

后直接开始
+0

你真的想要一个修复睡眠时间吗?这绝对不是同步代码的最佳方式。 –

+1

休息一下,看看这个恐怖或一天后。然后就像你自己一样:“为什么我会想到延迟一两种方法呢?导致问题的真正原因是什么?”然后从那里出发。推迟事情并不适合处理任务并发问题。 –

回答

0

创建这样一个

public static boolean isInternetConnected(Context context) 
{ 
    boolean result = false; 
    ConnectivityManager cm = (ConnectivityManager) context 
      .getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo info = cm.getActiveNetworkInfo(); 
    if (info != null) 
    { 
     result = info.isConnected(); 
     Log.i("My Project", "Connected NetworkType: " + info.getTypeName()); 
    } 
    return result; 
} 

的功能,然后在你的活动做

if(isInternetConnected()){ 
//TODO 
}else{ 
//TODO 
} 
+0

然后我运行'checkInternetConnection();'这个代码之前? – hudhud

+0

你想要做什么完全检查互联网连接,然后运行该活动? –

+0

是的,如果有互联网连接:) – hudhud