NO. 1 异步请求网络:
private class GetActionDataTask extends
AsyncTask<Void, Void, List<ActionList>> {
@Override
protected List<ActionList> doInBackground(Void... sessionid) {
List<ActionList> actionLists = null;
try {
if (!"".equals(mSportsApp.getSessionId()) && mSportsApp.getSessionId() != null) {
//对网络数据的请求。下一篇 请求网络数据。
actionLists = ApiJsonParser
.getNewActionList(
mSportsApp.getSessionId(),
"z"
+ getResources().getString(
R.string.config_game_id), 0);
}
} catch (ApiNetException e) {
e.printStackTrace();
} catch (ApiSessionOutException e) {
e.printStackTrace();
}
return actionLists;
}
@Override protected void onPreExecute() {
super.onPreExecute();
showDialog(getResources().getString(R.string.bestgirl_wait));
}
@Override
protected void onPostExecute(List<ActionList> result) {
super.onPostExecute(result);
mLoadProgressDialog.dismiss();
if (result == null)
return;
if (result.size() > 0 && actionLists != null) {
for (ActionList actionList : result) {
actionLists.add(actionList);
}
}
}
}
调用上述的请求数据代码:new GetActionDataTask().execute();
NO. 1 新线程请求网络handler传回主线程:
if (mSportsApp!=null&&mSportsApp.isOpenNetwork()) {
showDialog(getResources().getString(R.string.bestgirl_wait_upload));
new Thread(new Runnable() {
@Override
public void run() {
try {
AddFindItem back = ApiJsonParser.addFind(
mSportsApp.getSessionId(),
method_str, city_name,
list_bitmap_path_upload,
topiccat.toString(), "", "", "");
Message msg = new Message();
msg.what = 20141112;
msg.obj = back;
mHandler.sendMessage(msg);
} catch (ApiNetException e) {
Message msg = new Message();
msg.what = 20141113;
msg.obj = e.exceMsg();
mHandler.sendMessage(msg);
}
}
}).start();
} else {
right_btn.setEnabled(true);
Toast.makeText(
FindFriendsSendMsg.this,
getResources().getString(
R.string.error_cannot_access_net),
Toast.LENGTH_SHORT).show();
}
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 20141112:
isUpLoad = false;
back = (AddFindItem) msg.obj;
if (mLoadProgressDialog != null) {
mLoadProgressDialog.dismiss();
}
......
起新线程这种方式直接在哪需要数据在哪new Thread就可以。
加载中弹出框:
private void showDialog(String messages) {
if (mLoadProgressDialog == null) {
mLoadProgressDialog = new Dialog(getActivity(),
R.style.sports_dialog);
View v1 = LayoutInflater.from(getActivity()).inflate(R.layout.bestgirl_progressdialog, null);
message = (TextView) v1.findViewById(R.id.message);
message.setText(messages);
v1.setMinimumWidth((int) (SportsApp.ScreenWidth * 0.8));
mLoadProgressDialog.setContentView(v1);
mLoadProgressDialog.setCanceledOnTouchOutside(false);
}
message.setText(messages);
mLoadProgressDialog.show();
}
NO. 1 异步请求网络:
private class GetActionDataTask extends
AsyncTask<Void, Void, List<ActionList>> {
@Override
protected List<ActionList> doInBackground(Void... sessionid) {
List<ActionList> actionLists = null;
try {
if (!"".equals(mSportsApp.getSessionId()) && mSportsApp.getSessionId() != null) {
//对网络数据的请求。下一篇 请求网络数据。
actionLists = ApiJsonParser
.getNewActionList(
mSportsApp.getSessionId(),
"z"
+ getResources().getString(
R.string.config_game_id), 0);
}
} catch (ApiNetException e) {
e.printStackTrace();
} catch (ApiSessionOutException e) {
e.printStackTrace();
}
return actionLists;
}
@Override protected void onPreExecute() {
super.onPreExecute();
showDialog(getResources().getString(R.string.bestgirl_wait));
}
@Override
protected void onPostExecute(List<ActionList> result) {
super.onPostExecute(result);
mLoadProgressDialog.dismiss();
if (result == null)
return;
if (result.size() > 0 && actionLists != null) {
for (ActionList actionList : result) {
actionLists.add(actionList);
}
}
}
}
调用上述的请求数据代码:new GetActionDataTask().execute();
NO. 1 新线程请求网络handler传回主线程:
if (mSportsApp!=null&&mSportsApp.isOpenNetwork()) {
showDialog(getResources().getString(R.string.bestgirl_wait_upload));
new Thread(new Runnable() {
@Override
public void run() {
try {
AddFindItem back = ApiJsonParser.addFind(
mSportsApp.getSessionId(),
method_str, city_name,
list_bitmap_path_upload,
topiccat.toString(), "", "", "");
Message msg = new Message();
msg.what = 20141112;
msg.obj = back;
mHandler.sendMessage(msg);
} catch (ApiNetException e) {
Message msg = new Message();
msg.what = 20141113;
msg.obj = e.exceMsg();
mHandler.sendMessage(msg);
}
}
}).start();
} else {
right_btn.setEnabled(true);
Toast.makeText(
FindFriendsSendMsg.this,
getResources().getString(
R.string.error_cannot_access_net),
Toast.LENGTH_SHORT).show();
}
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 20141112:
isUpLoad = false;
back = (AddFindItem) msg.obj;
if (mLoadProgressDialog != null) {
mLoadProgressDialog.dismiss();
}
......
起新线程这种方式直接在哪需要数据在哪new Thread就可以。
加载中弹出框:
private void showDialog(String messages) {
if (mLoadProgressDialog == null) {
mLoadProgressDialog = new Dialog(getActivity(),
R.style.sports_dialog);
View v1 = LayoutInflater.from(getActivity()).inflate(R.layout.bestgirl_progressdialog, null);
message = (TextView) v1.findViewById(R.id.message);
message.setText(messages);
v1.setMinimumWidth((int) (SportsApp.ScreenWidth * 0.8));
mLoadProgressDialog.setContentView(v1);
mLoadProgressDialog.setCanceledOnTouchOutside(false);
}
message.setText(messages);
mLoadProgressDialog.show();
}