專案中常用到的工具類
阿新 • • 發佈:2019-02-19
首先第一個 解析流轉換成字串的工具類 StreamToString
import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; /** * Created by Administrator on 2018/1/12. */ public class StreamToString { public static String streamToString(InputStream inputStream){ ByteArrayOutputStream outputStream=import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; import com.bwie.com.yuekaomoni.R第三個工具類是 帶介面回撥的 非同步訪問工具類 MyTask; /** * 得到網路狀態的工具類 * Created by e531 on 2017/10/16. */ public class NetStateUtil { /* * 判斷網路連線是否已開 * true 已開啟 false 未開啟 * */ public static boolean isConn(Context context){ boolean bisConnFlag=false; ConnectivityManager conManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo network = conManager.getActiveNetworkInfo(); if(network!=null){ bisConnFlag=conManager.getActiveNetworkInfo().isAvailable(); } return bisConnFlag; } /** * 當判斷當前手機沒有網路時選擇是否開啟網路設定 * @param context */ public static void showNoNetWorkDlg(final Context context) { AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setIcon(R.mipmap.ic_launcher) // .setTitle(R.string.app_name) // .setMessage("當前無網路").setPositiveButton("設定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 跳轉到系統的網路設定介面 Intent intent = null; // 先判斷當前系統版本 if(android.os.Build.VERSION.SDK_INT > 10){ // 3.0以上 intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS); }else{ intent = new Intent(); intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings"); } context.startActivity(intent); } }).setNegativeButton("知道了", null).show(); } }
import android.os.AsyncTask; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; /** * Created by Administrator on 2018/1/11. */ public class MyTask extends AsyncTask<String,Void,String> { //申請一個介面類物件 private ICallBacks iCallBacks; //將無參構造設定成私有的,使外部不能夠呼叫 public MyTask() { } //定義有參構造方法 public MyTask(ICallBacks iCallBacks) { this.iCallBacks = iCallBacks; } @Override protected String doInBackground(String... strings) { try { URL url=new URL(strings[0]); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setConnectTimeout(5000); urlConnection.setReadTimeout(5000); if (urlConnection.getResponseCode()==200){ InputStream inputStream = urlConnection.getInputStream(); //呼叫工具類中的靜態方法 String s = StreamToString.streamToString(inputStream); return s; }else if(urlConnection.getResponseCode()==301||urlConnection.getResponseCode()==302){ //拿到重定向的地址 String newUrl = urlConnection.getHeaderField("location"); URL u=new URL(newUrl); HttpURLConnection connection= (HttpURLConnection) u.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); if (connection.getResponseCode()==200){ InputStream inputStream = connection.getInputStream(); //呼叫工具類中的靜態方法 String s = StreamToString.streamToString(inputStream); return s; } } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); iCallBacks.getJson(s); } //定義一個介面 public interface ICallBacks{ void getJson(String json); } }第四個是ImageLoader的全域性配置
import android.app.Application; import android.os.Environment; import android.util.Log; import android.widget.Toast; import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache; import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import java.io.File; /** * Created by jane on 2018/1/3. * Application->Context 子類 */ public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); Log.d("zzz","App入口"); Toast.makeText(this,"app",Toast.LENGTH_SHORT).show(); //自定義sd卡快取目錄 1.android預設cache-app被解除安裝時,快取的目錄一併被刪除 2.自定義 // File cachefile=getExternalCacheDir(); File cachefile= new File(Environment.getExternalStorageDirectory().getPath()+"/images"); //1.初使化--進行一下全域性配置 Application ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(this) .memoryCacheExtraOptions(400, 700)//快取圖片最大的長和寬 .threadPoolSize(3)//執行緒池的數量 .threadPriority(4) .memoryCacheSize(20*1024*1024)//設定記憶體快取區大小 .diskCacheSize(80*1024*1024)//設定sd卡快取區大小 .diskCache(new UnlimitedDiscCache(cachefile))//自定義sd卡快取目錄 .writeDebugLogs()//列印日誌內容 .diskCacheFileNameGenerator(new Md5FileNameGenerator())//給快取的檔名進行md5加密處理 .build(); ImageLoader.getInstance().init(configuration); } }