假设我在ip 89.374.52.452
和端口7893
有一台服务器:所以我使用套接字。我想跟踪/消费该服务器使用Android应用程序发出的每条消息。在应用程序运行时跟踪服务器足够简单。但我想跟踪服务器,即使应用程序没有运行?我该怎么做?
目前的解决方案
我正在使用服务来跟踪服务器。我使用START_STICKY
启动服务。我似乎遇到的问题是该服务似乎正在扼杀我的电池。我的评估是对的吗?事实上 - 这本身就是让服务无限期地杀死我的电池吗?或者是别的什么?我的方法是否良好的系统设计?假设我无法控制服务器,因此无法让服务器发送通知:除了
public class MyThread implements Runnable {
@Override
public void run() {
try {
if(null == socket || !socket.isConnected() || socket.isClosed()){
InetAddress theServer = InetAddress.getByName(server_IP);
socket = new Socket(theServer, serverIPPort); }
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while ((line = reader.readLine()) != null) {
handlers.post(new Runnable() {
public void run() {
if (line.length() > 0) {
…//store line
}
}
});
}
} catch (Exception e) {
e.printStackTrace();
try {
if (null != socket) {
socket.close();
socket=null;
}
} catch (IOException io) {
io.printStackTrace();
}
}
}
}