アンドロイドアプリがtcpサーバに接続しており、そこからデータを受信しているプロジェクトがあります。サーバーはループで動作します。
1.接続を待ちます。
2.クライアントを受け入れます。
3.クライアントにデータを送信します。
4.接続を閉じます。
5.戻る1.
サーバに接続するためのリフレッシュアクティビティ
私のアプリケーションは、のonCreate()メソッドでサーバに接続しているし、それが動作する、それがデータを受信しているが、私はそれが再び接続を行うことができますので、それはループ内で仕事をしたいです。
ここにアプリケーションコードがあります。
のonCreate方法:
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
temperatureValue = (TextView) findViewById(R.id.temperatureValue);
humidityValue = (TextView) findViewById(R.id.humidityValue);
lightValue = (TextView) findViewById(R.id.lightValue);
new Thread(new ClientThread()).start();
}
ClientThread:
class ClientThread implements Runnable
{
String data;
@Override
public void run()
{
try
{
InetAddress serverAddr = InetAddress.getByName(SERVER_IP);
socket = new Socket(serverAddr, SERVER_PORT);
}
catch (UnknownHostException e1)
{
e1.printStackTrace();
}
catch (IOException e2)
{
e2.printStackTrace();
}
try
{
InputStream in = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
data = br.readLine();
splitData(data);
}
catch (Exception e)
{
e.printStackTrace();
}
}
splitData方法:
文字列サーバから受信
public void splitData(String data)
{
String[] parts = data.split(";");
String temperatura, wilgotnosc, swiatlo;
temperatura = parts[0];
wilgotnosc = parts[1];
swiatlo = parts[2];
temperatureValue.setText(temperatura.substring(0, 5));
humidityValue.setText(wilgotnosc.substring(0, 5));
lightValue.setText(swiatlo);
}
このようになります。
"温度、湿度、光"
hereと私のアプリケーションが起動していないと、この警告が表示されます。
W/art:すべてのスレッドを中断しました:10.644ms。
そして、私の質問は:私は私のアプリケーションとそれがサーバに再び接続し、画面で値を更新しますリフレッシュすることができますどのような方法が
ありますか?私はアプリを閉じてもう一度開くと動作しています。私はどんな助けにも感謝します。