Я пытаюсь создать библиотеку Android, которая предоставляет операции AsyncTask. Я создал свою AsyncTask, как показано ниже. Однако я не знаю, как получить доступ к ресурсам библиотеки. Поле контекста задается активностью, которая использует эту библиотеку. Я использовал доступ к ресурсам, вызвав getActivity(). GetResources(). Но этот контекст AsyncTask возникает из проекта, который его использует, и я не знаю, как получить доступ к ресурсам библиотеки. Как я могу это достичь?Как я могу получить доступ к ресурсам библиотеки
public class CheckBalanceAsyncTask extends AsyncTask<Void, Void, Void> {
private Context mContext;
String json;
JSONObject jsonObject,jsonObjResult;
JSONArray jsonArray;
String message,balance;
ProgressDialog progress;
public CheckBalanceAsyncTask (Context context){
mContext = context;
//progress = new ProgressDialog(mContext);
}
@Override
protected void onPreExecute() {
super.onPreExecute();
// progress.setCancelable(false);
// progress.setMessage("please wait");//getString(R.string.pleasewait));
// progress.setTitle("waiting");//getString(R.string.loading));
// progress.setIcon(R.drawable.ic);
// progress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
// progress.setProgress(0);
// progress.setMax(100);
// progress.show();
}
@Override
protected Void doInBackground(Void... params) {
String aliasNo = "";
PackageInfo pinfo = null;
try {
pinfo = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0);
} catch (NameNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String versionName = pinfo.versionName;
String cardServiceUrl = "blabla";
Log.e("LOGGGGG", cardServiceUrl);
try {
json = JSONParser.getJSONFromUrl(cardServiceUrl);
try {
jsonObject = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser",
"Error creating json object" + e.toString());
}
jsonArray = jsonObject.getJSONArray("cardlist");
jsonObjResult = jsonObject.getJSONObject("result");
message = jsonObjResult.get("message").toString();
Log.e("MESSAGE", "" + message);
JSONObject row = jsonArray.getJSONObject(0);
balance = row.optString("balance");
}
catch (JSONException e) {
Log.e("json", "doInBackground2");
}
return null;
}
@Override
protected void onPostExecute(Void args) {
//progress.dismiss();
try {
if (jsonObjResult.get("message").toString()
.equalsIgnoreCase("ok")) {
Toast.makeText(mContext, balance+" TL", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Библиотека означает FAcebook sdk и т. Д. –
Вы хотите контекст библиотечного проекта в проекте библиотеки? Если это так, не используйте mContext, который был предоставлен проектом, который использует библиотеку, просто используйте свой собственный контекст с помощью этого или getContext() – VipulKumar
Я вызываю только этот класс AsynTask в библиотеке для моего проекта, и я могу Не обращайтесь к ресурсам библиотеки из класса AsynTask. getContext, и это не определено в классе AsyncTask. –