80,349
社区成员
发帖
与我相关
我的任务
分享
protected void onCreate(Bundle savedInstanceState) {
timer = new Timer();
timer.schedule(task, 2000,2000);
task = new TimerTask() {
@Override
public void run() {
bundle = getJson.GetState(getSave("backId"));
int backid = bundle.getInt("backid");
if (backid != -1) {
Message message = new Message();
message.what = SENDING_MSG;
message.setData(bundle);
mhandler.sendMessage(message);
timer.cancel();
}else{
}
}
};
}
// 线程处理
private Handler mhandler = new Handler() {
@Override
public void handleMessage(Message msg) {
mpDialog.dismiss();
switch (msg.what) {
case SENDING_MSG:
chronometer.stop();
chronometer.setVisibility(View.GONE);
result.setText(String.format(getString(R.string.sijiMsg),
msg.getData().getString("name"),
msg.getData().getString("phone")));
break;
case LOGINSUCCESS_MSG:
ShowToast("取消打车成功!");
startActivity(new Intent(CallSuccess.this, StepOne.class));
break;
case LOGINFAIL_MSG:
ShowToast("取消打车失败!");
break;
}
}
};
//获取状态
public static Bundle GetState(String id){
Bundle bundle = new Bundle();
try {
String content = getUrlContent(
String.format(
"http://modicall.applinzi.com/Home/Modi/getState.html?getState=11&id=%1$s",
id), 5000);//设置返回值为id
Log.d("backid","2到了");
try {
JSONObject obj = new JSONObject(content);
if (obj != null) {
int backid = Integer.parseInt(obj.getString("backid").toString());
Log.d("backid", "3到了");
if (backid != -1) {
bundle.putInt("backid", backid);//和接收的id一样
bundle.putString("name", obj.getString("name"));
bundle.putString("phone", obj.getString("phone"));
Log.d("backid", "4-1到了");
} else {
bundle.putInt("backid", -1);
Log.d("backid", "4-2到了");
}
}else{
bundle.putInt("backid", -1);
Log.d("backid", "4-5到了,Json获取失败");
}
} catch (JSONException e) {
e.printStackTrace();
Log.d("backid","4-3到了+"+e.getMessage());
}
} catch (Exception e) {
e.printStackTrace();
Log.d("backid","4-4到了");
}
Log.d("backid","5到了");
return bundle;
}
结果是:
04-13 00:19:02.126 21169-21169/? D/backid: 1到了
04-13 00:19:02.133 21169-21169/? D/backid: 2到了
04-13 00:19:02.135 21169-21169/? D/backid: 4-3到了+End of input at character 0 of
04-13 00:19:02.135 21169-21169/? D/backid: 5到了
输入网址直接访问是:{"backid":"1","name":"\u963f\u51e1","phone":"1123456"}
Json抛出异常是什么原因?public class HelpService extends Service{
private Context context;
private long n;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
context = this;
n = 0 ;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
new Thread(){
@Override
public void run() {
while (true) {
try {
Thread.sleep(100);
if (!isWorked("com.ql.activity.service.LongevityService")) {
Intent i = new Intent(context, LongevityService.class);
context.startService(i);
}
if (n++%100 == 0) {
Log.v("dddd", "HelpService");
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start();
return START_STICKY;
}
private static String getUrlContent(String url, int timeOut) {
String str = "";
try {
URL aURL = null;
try {
aURL = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
URLConnection conn = aURL.openConnection();
conn.connect();
StringBuilder b = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(
conn.getInputStream(), "UTF-8"));
String line;
while ((line = reader.readLine()) != null) {
b.append(line);
}
reader.close();
str = b.toString();
Log.d("strfanhui",str);
} catch (IOException e) {
} catch (Exception e) {
}
return str;
}
这是getUrlContent的安卓部分代码,其它取消都是通过它,可以使用
/**
* 获取状态
*/
public function getState(){
$sta = I('get.getState','');
$fdata = array();//返回Data
if($sta == '11'){
$id = I('get.id','');
$sData = M('sendinfo')->where(array('id'=>$id))->field('siji,status')->find();
if($sData['status'] == 1){
$sijiData = M('ucenter_member')->where(array('id'=>$sData['siji']))->field('username,mobile')->find();
$fdata['backid'] = (int)$id;
$fdata['name'] = urldecode($sijiData['username']);
$fdata['phone'] = $sijiData['mobile'];
$backStr = json_encode($fdata);
}else {
$fdata['backid'] = -1;
$backStr = json_encode($fdata);
}
echo $backStr;
}
}