当没有互联网连接时,我的活动会被强制关闭。如何防止这种情况?我正在考虑向用户显示一条消息,如果没有连接,则没有互联网连接。我应该通过哪些方式更改代码?提前致谢
public class Myclass extends BaseActivity {
private String[] imageUrls;
private DisplayImageOptions options;
private InputStream is;
private String result;
@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ac_image_grid);
imageUrls = new String[1000];
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(D.url+"gal.php");
List nameValuepairss = new ArrayList(1);
// adding attributes to List
nameValuepairss.add(new BasicNameValuePair("type","gal_living"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuepairss));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
Log.e("log_tag", "connection success username");
}catch(Exception e){
Log.e("log_tag", "Error in http connection "+e.toString());
Toast.makeText(getApplicationContext(), "fail1", Toast.LENGTH_SHORT).show();
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result :::"+e.toString());
// Toast.makeText(getApplicationContext(), "fail1", Toast.LENGTH_SHORT).show();
}
try{
JSONArray jArray = new JSONArray(result);
int arrayLength=jArray.length();
final String url[]=new String[arrayLength];
for(int i=0;i<arrayLength;i++){
JSONObject json_data = jArray.getJSONObject(i);
url[i]=json_data.getString("url");
}
List<String> urls = new ArrayList<String>();
urls.addAll(Arrays.asList(url));
imageUrls = urls.toArray(new String[0]);
} catch(JSONException e){
Log.e("log_tag", "Error parsing data:::::again? "+e.toString());
} options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.stub_image)
.showImageForEmptyUri(R.drawable.image_for_empty_url)
.cacheInMemory()
.cacheOnDisc()
.build();
GridView gridView = (GridView) findViewById(R.id.gridview);
gridView.setAdapter(new ImageAdapter());
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
startImageGalleryActivity(position);
}
});
}
private void startImageGalleryActivity(int position) {
Intent intent = new Intent(this, ImagePagerActivity.class);
intent.putExtra(Extra.IMAGES, imageUrls);
intent.putExtra(Extra.IMAGE_POSITION, position);
startActivity(intent);
}
public class ImageAdapter extends BaseAdapter {
@Override
public int getCount() {
return imageUrls.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ImageView imageView;
if (convertView == null) {
imageView = (ImageView) getLayoutInflater().inflate(R.layout.item_grid_image, parent, false);
} else {
imageView = (ImageView) convertView;
}
imageLoader.displayImage(imageUrls[position], imageView, options, new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(Bitmap loadedImage) {
Animation anim = AnimationUtils.loadAnimation(LivingGrid.this, R.anim.fade_in);
imageView.setAnimation(anim);
anim.start();
}
});
return imageView;
}}}