2013-07-05 53 views
1

我有一个Android的MainActivity类加载第一个屏幕。开始时,我需要在另一个线程中运行另一个方法,然后显示消息或转到另一个屏幕。对于UI不会挂起。 如何做到这一点?代码在哪个地方?如何在Android的另一个线程中运行方法?

//更新的代码

import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.Context; 

import android.view.Menu; 
import android.widget.Toast; 


public class MainActivity extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    //Context context=getApplicationContext(); 
    String Internet=String.valueOf(isNetworkAvailable(this)); 
    Toast toast = Toast.makeText(this, Internet, Toast.LENGTH_SHORT); 
    toast.show(); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

public static boolean isNetworkAvailable(Context context) 
{ 
    return ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo() != null; 
} 

}

+3

AsyncTask可能会帮助你:http://developer.android.com/reference/android/os/AsyncTask.html – DigCamara

+1

你可以使用'thread'或'asynctask'。你需要更具体。 – Raghunandan

+0

@Raghunandan - 不,他们不需要更具体,因为任何解决方案都可以正常工作。 –

回答

5

你可以走了Java路线,并利用正常的线程。但是,请注意,您需要一个Handler(位于Android SDK中的类)将更改传播到UI。
更安卓类的方式将是AsyncTask。它专门设计用于必须与用户界面并行运行的任务,并提供一种机制来回拨用户界面,因此您不必亲自实施(如果您决定选择该选项,您将如何处理该处理程序furst选项)。

+5

您可以使用runOnUiThread将更改传播到UI。 – DigCamara

+0

谢谢,我会看到它。 – user2543953

+0

现在我先尝试在onCreate方法中检查连接的结果: String Internet = String.valueOf(this.isNetworkConnected()); Toast.makeText(getApplicationContext(),Internet,Toast.LENGTH_SHORT); Toast.makeText(getApplicationContext(),Internet,Toast.LENGTH_SHORT); \t \t toast.show(); 但它停止了应用程序。我可以在这里调用isNetworkConnected()方法吗? – user2543953

相关问题