2016-10-13 3 views
-2

私はNetworkOnMainThreadExceptionを取得しますが、私が見ているように、それはメインスレッドにはありません。ここに私のコードで例外がrepository.getLatestRevision();run()にcatchedとのコース)でスローされますアンドロイド:新しいスレッドのNetworkOnMainThreadException?

public class MainActivity extends Activity{ 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Thread thread = new Thread(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        sendFiles(); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
     thread.run(); 
    } 

    void sendFiles() throws SVNException, IOException {  
     DAVRepositoryFactory.setup(); 
     SVNURL url = SVNURL.parseURIEncoded("..."); 
     SVNRepository repository = DAVRepositoryFactory.create(url); 
     ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager("...", "...".toCharArray()); 
     repository.setAuthenticationManager(authManager); 
     long r= repository.getLatestRevision(); 
    } 
} 

(私はsvnkit.comからライブラリを使用します)。誰も私に説明することができます、なぜですか?

+0

ネットワーク操作にUIスレッドを使用しているためです。 'AysncTask'を使用してください。もっと参考にしてください。[here](https://developer.android.com/reference/android/os/AsyncTask.html)を読んでください。 –

答えて

0

はい、もちろんです。あなたはメインテッドでThread.run()と呼んでいます。このエラーを回避するには、runの代わりにstartを使用してください。

関連する問題