我正在使用此tutorial。我添加了以下代码,以便将我的值连续发送到服务器,但它不起作用。感谢
public class MyService extends Service {
private static final String TAG = "MyService";
protected static Boolean c = true;
ServicesDemo sd = new ServicesDemo();
private Timer timer = new Timer();
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show();
Log.d(TAG, "onCreate");
startservice();
}
@Override
public void onDestroy() {
Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
Log.d(TAG, "onDestroy");
}
@Override
public void onStart(Intent intent, int startid) {
Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
Log.d(TAG, "onStart");
c=true;
}
private void startservice() {
timer.scheduleAtFixedRate( new TimerTask() {
public void run() {
try {
String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
//Toast.makeText(MyService.this, "Latitude is = "+la+"Longitude is = "+longi, Toast.LENGTH_SHORT).show();
URL url = new URL("http://mediasense4.appspot.com/add.jsp?lat="+(int) (Math.random() * 45)+"&longi="+(int) (Math.random() * 45)+"&personid="+2+"&status="+3+"&name="+5+"");
//URL url = new URL("http://mediasense4.appspot.com/add.jsp?lat="+241+"&longi="+654+"");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
String line = null;
String response = "";
while ((line = rd.readLine()) != null) {
response += line;
}
wr.close();
rd.close();
}
catch (Exception e) {
//e.printStackTrace();
}
}
}, 0, 5000);
; }}
当我点击开始按钮时,logcat会出现以下错误
05-24 21:18:56.347: DEBUG/dalvikvm(5070): GC freed 8615 objects / 520600 bytes in 87ms
05-24 21:18:56.487: DEBUG/dalvikvm(491): GC freed 267 objects / 13280 bytes in 107ms
05-24 21:18:56.927: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=10&longi=34&personid=2&status=3&name=5
05-24 21:18:56.927: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:18:56.927: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:18:56.937: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:18:57.597: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=39&longi=16&personid=2&status=3&name=5
05-24 21:18:57.597: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:18:57.597: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:18:57.597: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:18:58.557: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=3&longi=18&personid=2&status=3&name=5
05-24 21:18:58.557: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:18:58.557: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:18:58.557: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:18:59.577: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=15&longi=38&personid=2&status=3&name=5
05-24 21:18:59.587: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:18:59.587: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:18:59.587: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:00.567: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=8&longi=17&personid=2&status=3&name=5
05-24 21:19:00.567: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:00.567: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:00.567: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:01.577: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=40&longi=36&personid=2&status=3&name=5
05-24 21:19:01.577: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:01.577: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:01.577: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:02.567: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=32&longi=4&personid=2&status=3&name=5
05-24 21:19:02.567: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:02.567: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:02.567: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:03.677: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=18&longi=36&personid=2&status=3&name=5
05-24 21:19:03.687: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:03.687: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:03.687: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:04.827: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=18&longi=4&personid=2&status=3&name=5
05-24 21:19:04.827: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:04.837: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:04.837: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:05.287: DEBUG/dalvikvm(475): GC freed 101 objects / 5376 bytes in 159ms
05-24 21:19:05.597: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=44&longi=44&personid=2&status=3&name=5
05-24 21:19:05.597: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:05.597: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:05.597: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:06.567: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=23&longi=44&personid=2&status=3&name=5
05-24 21:19:06.567: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:06.567: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:06.567: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:07.577: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=2&longi=16&personid=2&status=3&name=5
05-24 21:19:07.577: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:07.587: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:07.587: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:08.567: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=1&longi=3&personid=2&status=3&name=5
05-24 21:19:08.567: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:08.567: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:08.577: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:09.577: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=5&longi=31&personid=2&status=3&name=5
05-24 21:19:09.577: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:09.577: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:09.577: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:10.567: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=39&longi=10&personid=2&status=3&name=5
05-24 21:19:10.577: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:10.577: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:10.577: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:11.567: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=37&longi=23&personid=2&status=3&name=5
05-24 21:19:11.567: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:11.567: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:11.577: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:12.407: DEBUG/dalvikvm(5070): GC freed 8568 objects / 514384 bytes in 91ms
05-24 21:19:12.667: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=36&longi=29&personid=2&status=3&name=5
05-24 21:19:12.667: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:12.667: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:12.667: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:13.567: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=23&longi=6&personid=2&status=3&name=5
05-24 21:19:13.567: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:13.567: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:13.567: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:14.637: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=37&longi=31&personid=2&status=3&name=5
05-24 21:19:14.637: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:14.637: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:14.637: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:15.577: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=7&longi=19&personid=2&status=3&name=5
05-24 21:19:15.577: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:15.577: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:15.577: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:16.567: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=10&longi=2&personid=2&status=3&name=5
05-24 21:19:16.577: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:16.577: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:16.577: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:17.557: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=39&longi=4&personid=2&status=3&name=5
05-24 21:19:17.557: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:17.557: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:17.557: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:18.557: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=2&longi=15&personid=2&status=3&name=5
05-24 21:19:18.557: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:18.567: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:18.567: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:19.577: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=22&longi=33&personid=2&status=3&name=5
05-24 21:19:19.577: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:19.577: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:19.577: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:20.557: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=22&longi=37&personid=2&status=3&name=5
05-24 21:19:20.557: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:20.557: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:20.557: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:21.657: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=3&longi=8&personid=2&status=3&name=5
05-24 21:19:21.657: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:21.657: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:21.657: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:22.577: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=0&longi=13&personid=2&status=3&name=5
05-24 21:19:22.577: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:22.577: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:22.577: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:23.567: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=4&longi=22&personid=2&status=3&name=5
05-24 21:19:23.567: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:23.567: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:23.577: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:24.587: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=34&longi=12&personid=2&status=3&name=5
05-24 21:19:24.587: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:24.587: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:24.587: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:25.597: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=28&longi=18&personid=2&status=3&name=5
05-24 21:19:25.597: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:25.597: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:25.597: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:26.557: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=7&longi=2&personid=2&status=3&name=5
05-24 21:19:26.567: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:26.567: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:26.567: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:27.567: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=6&longi=12&personid=2&status=3&name=5
05-24 21:19:27.567: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:27.567: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:27.567: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:28.777: DEBUG/dalvikvm(5070): GC freed 8824 objects / 524672 bytes in 90ms
05-24 21:19:28.787: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=38&longi=33&personid=2&status=3&name=5
05-24 21:19:28.797: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:28.797: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:28.797: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:29.717: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=39&longi=30&personid=2&status=3&name=5
05-24 21:19:29.717: WARN/System.err(5070): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061)
05-24 21:19:29.717: WARN/System.err(5070): at com.example.MyService$1.run(MyService.java:82)
05-24 21:19:29.717: WARN/System.err(5070): at java.util.Timer$TimerImpl.run(Timer.java:290)
05-24 21:19:30.577: WARN/System.err(5070): java.io.FileNotFoundException: http://mediasense4.appspot.com/add.jsp?lat=4&longi=4&personid=2&status=3&name=5
答案 0 :(得分:2)
启动具有无限循环的服务并在其中进行睡眠以安排重复任务是不好的。由于服务(默认情况下)是在UI线程上启动的,因此这种行为可能导致较差的UI响应。最好考虑以下情况之一:
IMO第二个是最优选的。
答案 1 :(得分:1)
从您的代码中,您只调用一次写入,因此只会发出一个请求。即使您在服务中进行一次网络操作,建议使用线程。 onStart方法在主线程上运行,如果网络操作需要很长时间,则会抛出Application Not Responding(ANR)错误。
查看this blog的线程概念。
答案 2 :(得分:1)
当我手动调用时,您正在调用的URL返回500 Server Error。看起来您的问题可能在服务器端?