在我的項目,我有一個TCP服務器,使聲音的振動的TCP客戶端後發送一個包,但現在我想,如果從TCP計數器服務器是!= 0 60秒後,重複的聲音和振動,但我不知道如何實現IF功能CONTROLL如果計數器60秒後發生變化。 可能有一個簡單的解決方案,但我是新的android。入住一段時間後,變量的變化
這裏是我的Server.java代碼:
public class Server {
DataBaseHandler myDB;
allert Allert;
MainActivity activity;
RecyclerViewAdapter adapterView;
Adapter adapter;
ServerSocket serverSocket;
public static int count=0;
String letto = "";
private SharedPreferences prefs;
static final int socketServerPORT = 8080;
public Server(MainActivity activity) {
this.activity = activity;
Thread socketServerThread = new Thread(new SocketServerThread());
socketServerThread.start();
}
public int getPort() {
return socketServerPORT;
}
public void onDestroy() {
if (serverSocket != null) try {
serverSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private class SocketServerThread extends Thread {
Vibrator vibrator;
String date,ora;
long[] pattern = {0, 1000, 500, 1000, 500, 1000};
int lun;
@Override
public void run() {
InputStream leggi;
try {
serverSocket = new ServerSocket(socketServerPORT);
while (true) {
myDB = DataBaseHandler.getInstance(activity);
Socket socket = serverSocket.accept();
leggi = socket.getInputStream();
byte[] data = new byte[1000];
lun = leggi.read(data, 0, data.length);
letto = new String(data, "UTF-8");
count++;
MediaPlayer mPlay = MediaPlayer.create(activity, R.raw.gabsuono);
mPlay.start();
vibrator = (Vibrator) activity.getSystemService(VIBRATOR_SERVICE);
vibrator.vibrate(pattern, -1);
date = new SimpleDateFormat("dd-MM-yyyy").format(new Date());
ora = new SimpleDateFormat("HH:mm:ss").format(new Date());
myDB.insertDataServer(date, ora, letto);
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
allert.refreshing.setVisibility(View.VISIBLE);
prefs = activity.getSharedPreferences("MY_DATA", MODE_PRIVATE);
SharedPreferences.Editor edit = prefs.edit();
edit.putInt("counter", count);
edit.commit();
MainActivity.msg.setText(String.valueOf(count));
MainActivity.msg.setVisibility(View.VISIBLE);
}
});
leggi.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void Parti() {
prefs = activity.getSharedPreferences("MY_DATA", MODE_PRIVATE);
count = prefs.getInt("counter", count);
MainActivity.msg.setText("" + count);
if (count == 0)
MainActivity.msg.setVisibility(View.INVISIBLE);
else
MainActivity.msg.setVisibility(View.VISIBLE);
}
}
哪個變量是你想要的60秒後檢查?它是「數」嗎? – Ivan
我想檢查計數變量 –
你想每60秒檢查一次還是隻檢查一次60秒後? – Ivan