package com.jiuqi.njt.ui; import java.util.ArrayList; import java.util.List; import android.annotation.SuppressLint; import android.app.Activity; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.os.Handler; import android.os.IBinder; import android.os.Message; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewStub; import android.view.Window; import android.widget.Button; import android.widget.ListView; import com.jiuqi.njt.R; import com.jiuqi.njt.adapter.UploadAdapter; import com.jiuqi.njt.adapter.UploadAdapter.OnInfoDeleteListener; import com.jiuqi.njt.data.MyApp; import com.jiuqi.njt.data.WorkTaskBeanLocal; import com.jiuqi.njt.db.WorkTaskNewsBeanDBHelper; import com.jiuqi.njt.inf.ServiceInf; import com.jiuqi.njt.inf.TaskInf; import com.jiuqi.njt.service.UploadRecordSerice; import com.jiuqi.njt.service.impl.WorkTaskNewsBeanImp; import com.jiuqi.njt.util.ActivityUtil; import com.jiuqi.njt.util.TitleBarUtil; import com.jiuqi.ui.widget.swipelistview.BaseSwipeListViewListener; import com.jiuqi.ui.widget.swipelistview.SwipeListView; @SuppressLint("NewApi") public class UploadInBackgroundActivity extends Activity implements OnClickListener, TaskInf, OnInfoDeleteListener { private Button uploadBtn; // private SwipeListView mSwipeListView; private ListView listview; private int width; private List<WorkTaskBeanLocal> bulist; private UploadAdapter adapter; protected int progress = 0; private UploadRecordSerice service;// 绑定的service对象 private WorkTaskNewsBeanDBHelper db; private MyApp app; private Handler handler = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 0: initData(); resetData(); break; case 1: break; default: break; } }; }; // 连接对象,//在客户端覆写onServiceConnected方法,当服务绑定成功会调用此回调函数 ServiceConnection connection = new ServiceConnection() { @Override public void onServiceDisconnected(ComponentName name) { } @Override public void onServiceConnected(ComponentName name, IBinder bind) { service = ((UploadRecordSerice.MyBind) bind).getService();// //通过IBinder获取Service Log.wtf("Activity", "2-3onServiceConnected"); service.setListener(new ServiceInf() { @Override public void successBean(WorkTaskBeanLocal b) { bulist.clear(); initData(); resetData(); } @Override public void failBean(WorkTaskBeanLocal b) { bulist.clear(); b.setState(0); // 更新对象 initData(); resetData(); } @Override public void currBean(WorkTaskBeanLocal b) { for (int i = 0; i < bulist.size(); i++) { if (b.getId() == bulist.get(i).getId()) { bulist.remove(i); b.setState(1); bulist.add(i, b); resetData(); break; } } } }); } }; protected void onCreate(android.os.Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); initParam(); initWidget(); initTitleBar(); // 开始绑定 Log.wtf("Activity", "1-onCreate"); Intent intent = new Intent(this, UploadRecordSerice.class); bindService(intent, connection, Context.BIND_AUTO_CREATE); initUpload(); }; private void initUpload() { adapter.start(true); adapter.notifyDataSetChanged(); } private void initParam() { app = (MyApp) getApplication(); bulist = new ArrayList<WorkTaskBeanLocal>(); db = new WorkTaskNewsBeanDBHelper(this); width = ActivityUtil.getWindowWidth(this); } /** * 初始化标题栏 */ private void initTitleBar() { ViewStub rlTitleBar = (ViewStub) findViewById(R.id.upload_titleBarStub); TitleBarUtil.createTitleBar(this, rlTitleBar, "后台上传", new OnClickListener() { @Override public void onClick(View arg0) { finish(); } }); } private void initWidget() { initData(); setContentView(R.layout.activity_upload_background); uploadBtn = (Button) findViewById(R.id.upload_btn); listview = (ListView) findViewById(R.id.upload_lvv); uploadBtn.setVisibility(View.GONE); resetData(); // 要上传的数据的列表 // mSwipeListView = (SwipeListView) findViewById(R.id.upload_lv); // adapter = new UploadAdapter(this, width, bulist); // mSwipeListView.setAdapter(adapter); // mSwipeListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); // mSwipeListView // .setSwipeListViewListener(new BaseSwipeListViewListener() { // private String TAG = "swipelistview"; // // @Override // public void onStartOpen(int position, int action, // boolean right) { // Log.d(TAG, "onStartOpen"); // } // // @Override // public void onStartClose(int position, boolean right) { // Log.d(TAG, "onStartClose"); // } // // @Override // public void onClickFrontView(int position) { // Intent intent = null; // switch (bulist.get(position).getPublishType()) { // case 1: // intent = new Intent( // UploadInBackgroundActivityNew.this, // PostInfoJobsActivityNew.class); // break; // case 2: // intent = new Intent( // UploadInBackgroundActivityNew.this, // PostInfoGoodsActivity.class); // break; // case 3: // intent = new Intent( // UploadInBackgroundActivityNew.this, // PostInfoMachinesActivity.class); // break; // // default: // break; // } // Log.d(TAG, "onClickFrontView"); // Log.d(TAG, bulist.get(position).getPublishType() + ""); // intent.putExtra("localbean", bulist.get(position)); // startActivity(intent); // UploadInBackgroundActivityNew.this.finish(); // } // // @Override // public void onClickBackView(int position) { // Log.d(TAG, "onClickBackView"); // } // // @Override // public void onDismiss(int[] reverseSortedPositions) { // adapter.notifyDataSetChanged(); // } // }); // reload(); } // private void reload() { // mSwipeListView.setSwipeMode(SwipeListView.SWIPE_MODE_NONE); // mSwipeListView.setSwipeMode(SwipeListView.SWIPE_MODE_LEFT); // mSwipeListView.setSwipeActionLeft(SwipeListView.SWIPE_ACTION_REVEAL); // mSwipeListView.setOffsetLeft(width * 3 / 4); // mSwipeListView.setAnimationTime(0); // mSwipeListView.setSwipeOpenOnLongPress(false); // } private void initData() { List<WorkTaskBeanLocal> savelist = db.queryForState(0);// 获取所有保存和提交过的数据 List<WorkTaskBeanLocal> submitList = db.queryForState(1); if (bulist == null) { bulist = new ArrayList<WorkTaskBeanLocal>(); } else { bulist.clear(); } if (savelist != null) { bulist.addAll(savelist); } if (submitList != null) { bulist.addAll(submitList); } } private void resetData() { adapter = new UploadAdapter(UploadInBackgroundActivity.this, width, bulist); // mSwipeListView.setAdapter(adapter); listview.setAdapter(adapter); } public void onUpload() { if (null != bulist && bulist.size() > 0) { WorkTaskNewsBeanImp upload = new WorkTaskNewsBeanImp(this, getApplication()); upload.setListener(this); upload.upLoad(); } else {// list中没有数据了 uploadBtn.setClickable(true); uploadBtn.setText("开始上传"); } } @Override public void onInfoDeleteClick(int position) { // TODO Auto-generated method stub db.deleteByGuid(bulist.get(position).getGuid()); bulist.remove(position); // mSwipeListView.closeOpenedItems(); resetData(); } @Override public void onPreExecute() { } @Override public void isSuccess(Object b) { // TODO Auto-generated method stub boolean success = (Boolean) b; Message msg = new Message(); if (success) { msg.what = 0; } else { msg.what = 1; } handler.sendMessage(msg); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.upload_btn: adapter.start(true); adapter.notifyDataSetChanged(); onUpload(); uploadBtn.setText("正在上传"); uploadBtn.setClickable(false); break; default: break; } } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); initData(); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); unbindService(connection); Log.wtf("Up类停止服务onDestroy", "onDestroy"); } }