80,351
社区成员
发帖
与我相关
我的任务
分享
public class UploadPicService extends Service {
// / 上下文
private Context context;
/// 全局的应用
private MyApplication mApplication;
private Hashtable<String, JSONObject> updateDates;//保存正在上传的图片列表,如果返回了结果,则从中移出;
private MediaDataDao daoservice;
private TableData tabledata;
private TableData mediaTable;
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
System.out.println("service create");
context = getBaseContext();
mApplication = MyApplication.getInstance();
updateDates=new Hashtable<String, JSONObject>();
daoservice = new MediaDataDao(context,MapSharePreferences.getUserDBDirectory(context));
}
@Override
public void onStart(Intent intent, int startId) {
if (intent != null) {
tabledata = daoservice.queryMaxByRid(mApplication.missionId,Constant.TABLE_ZHIFA_XCJC_ZN);
mediaTable = daoservice.queryMaxByRid(tabledata.id,SystemConstant.MY_MEDIA_TABLENAME);
new Thread(new Runnable() {
@Override
public void run() {
try {
//图片上传等一系列操作后,无关数据库操作
Message msg=new Message();
msg.what=1003;
msg.obj=tempMediaTable;
handler.sendMessage(msg);//更新数据库
}).start();
}
}
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 1000:// 图片上传成功
String errorMsg1 = (String) msg.obj;
Toast.makeText(context, errorMsg1, Toast.LENGTH_LONG).show();
break;
case 1001:// 图片上传成功
Toast.makeText(context, "图片上传成功!", Toast.LENGTH_LONG).show();
break;
case 1002:// 图片上传失败
String errorMsg3 = (String) msg.obj;
Toast.makeText(context, errorMsg3, Toast.LENGTH_LONG)
.show();
case 1003://更新数据
TableData tempMediaTable=(TableData)msg.obj;
System.out.println(tempMediaTable.body);
daoservice.updateById(tempMediaTable, SystemConstant.MY_MEDIA_TABLENAME);
TableData temp=daoservice.queryMaxByRid(tempMediaTable.rid,SystemConstant.MY_MEDIA_TABLENAME);
System.out.println(temp.body);
break;
}
}
};
}
public boolean updateById(TableData tableData, String tableName)
{
creatTable(tableName);
try {
synchronized (this) {
db.beginTransaction();
this.db.execSQL("update " + tableName +
" set rid = ?,head=?,body=?,location=? where id = ? ",
new String[] { tableData.rid, tableData.head, tableData.body,
tableData.location, tableData.id });
db.setTransactionSuccessful();
db.endTransaction();
}
return true;
} catch (Exception e) {
e.printStackTrace();
db.endTransaction();
}
return false;
}