package com.senses.services;
import java.util.HashMap;
import java.util.Map;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.os.Handler;
import android.os.IBinder;
import com.senses.common.HttpTsang;
import com.senses.config.Config;
public class InboxService extends Service {
public String count;
public String url=new Config().BASEURI+"/inbox.php?act=notification";
// MyHandler myHandler;
Map<String,String> map=new HashMap<String,String>();//用集合来做,比字符串拼接来得直观
private Handler handler;
private boolean flag = true;
private StopReceiver receiver;
//RadioButton noti=(RadioButton)f
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
try {
/*
myHandler=new MyHandler(InboxService.this.getMainLooper());
MyThread m = new MyThread();
m.urlPath=url;
m.map=map;
new Thread(m).start();
*/
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
IntentFilter filter = new IntentFilter("com.senses.services.noti_stop");
receiver = new StopReceiver();
this.registerReceiver(receiver, filter);
sendData();
return super.onStartCommand(intent, flags, startId);
}
public void sendData() {
new Thread(){
public void run() {
Context ctx = InboxService.this;
SharedPreferences sp = ctx.getSharedPreferences("SP", MODE_PRIVATE);
map.put("user_id", sp.getString("ID_KEY","none"));
Intent intent = new Intent();
intent.setAction("com.senses.services.noti_rec");
HttpTsang httpTsang=new HttpTsang();
String status = "0msgsendsucceed";
try {
status=httpTsang.postRequest(url,map);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String a[] = status.split("msgsendsucceed");
while(flag) {
intent.putExtra("noti_count", a[0]+"条新消息");
InboxService.this.sendBroadcast(intent);
try{
System.out.println("sleep");
Thread.currentThread().sleep(8000);
}catch(Exception e) {
System.out.println("error");
}
}
}
}.start();
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
this.unregisterReceiver(receiver);
super.onDestroy();
super.onDestroy();
}
@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
//map.put("user_id", "user_id");
try {
/*
myHandler=new MyHandler(InboxService.this.getMainLooper());
MyThread m = new MyThread();
m.urlPath=url;
m.map=map;
new Thread(m).start();
*/
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
super.onStart(intent, startId);
}
/*
class MyHandler extends Handler {
public MyHandler() {
}
public MyHandler(Looper L) {
super(L);
}
// 必须重写这个方法,用于处理message
@Override
public void handleMessage(Message msg) {
// 这里用于更新UI
Bundle b = msg.getData();
String response=b.getString("response");
Log.v("count", "hahahah"+response);
Toast.makeText(getApplicationContext(), response, Toast.LENGTH_LONG).show();
Intent intent = new Intent();
intent.setAction("com.senses.services.noti_rec");
while(flag) {
intent.putExtra("noti_count", response);
InboxService.this.sendBroadcast(intent);
try{
Log.v("count", "aaaaaaaaaaaaaaaaa");
//System.out.println("sleep");
Thread.currentThread().sleep(1000);
}catch(Exception e) {
//System.out.println("error");
}
}
// String data_r="success";
// int s=response.indexOf(data_r);
// //Toast.makeText(getApplicationContext(), data, Toast.LENGTH_LONG).show();
// if(s!=-1){
// Toast.makeText(getApplicationContext(), "提交成功", Toast.LENGTH_LONG).show();
//
// }else{
// Toast.makeText(getApplicationContext(), "Failed!Please check your network", Toast.LENGTH_LONG).show();
//
// }
}
}
class MyThread implements Runnable {
String urlPath;
Map<String,String> map=new HashMap<String,String>();
public void run() {
try {
HttpTsang httpTsang=new HttpTsang();
String status=httpTsang.postRequest(urlPath,map);
Message msg = myHandler.obtainMessage();
Bundle b = new Bundle();
b.putString("response", status);
msg.setData(b);
Log.v("the response", "tttttttttttttttt");
myHandler.sendMessage(msg);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
*/
private class StopReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int stop = intent.getIntExtra("stop", -1);
if(stop == 1) {
flag = false;
stopSelf();
}
}
}
}