ハンドラーとタイマータスクに問題がある ハンドラーを終了して接続を確認し、2 つの別々のスレッドで UI を更新すると、動作します。しかし、ネットワーク接続を定期的に更新したい。たぶん5秒ごとに実行します。これを行うには、Timer.schedule を使用します。しかし、アプリケーションは失敗しました。タイマーが UI スレッドに移動できないかどうかはわかりません。
また、そのようなマルチタスクを実行するためのより良い方法があるかどうかもわかりません。AsyncTask,Looper のような別の方法があるかどうかを知りたいです。ありがとうございました
public class ViewPostTest extends Activity { private String connection_status = null;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final TextView timer_view = (TextView) findViewById(R.id.result);
final Runnable runnable = new Runnable(){
public void run() {
// TODO Auto-generated method stub
ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkinfo = manager.getActiveNetworkInfo();
if(networkinfo.isConnected())
{
connection_status = "Connected";
}
else
{
connection_status = "Disconnected";
}
timer_view.post(new Runnable(){
public void run() {
// TODO Auto-generated method stub
timer_view.setText(connection_status);
}});
}};
TimerTask task1 = new TimerTask(){
@Override
public void run() {
// TODO Auto-generated method stub
Handler handler = new Handler();
handler.post(runnable);
}};
Timer timer1 = new Timer();
timer1.schedule(task1, 0,5000);
}
}