У меня возникла проблема с текущей реализацией моего приложения. Я выполняю asynctask onActivityCreated, но я не заинтересован в этом, если пользователь просто меняет ориентацию телефона. Каков надлежащий способ убедиться, что асинхронные вызовы unnescesarry не выполняются, когда пользователь меняет ориентацию телефона?Приложение, выполняющее AsyncTask каждый раз, когда переключатели ориентации
Вот два метода onActivityCreated и populateList. populateList вызывается onPostExecute().
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
userControl = new UserController(getSherlockActivity());
lv = (ListView)getView().findViewById(R.id.callforwardlist);
lv.setTextFilterEnabled(true);
list = new ArrayList<HashMap<String,String>>();
callForwardList = new SimpleAdapter(
getSherlockActivity(),
list,
R.layout.callforward_items,
new String[] { "line1","line2" },
new int[] { R.id.callforward_item_text, R.id.callforward_number });
new PullInfoTask().execute();
lv.setAdapter(callForwardList);
lv.setOnItemClickListener(new OnItemClickListener() {
// *snip*
});
}
private void populateList()
{
cfinfo = userControl.GetCallForwardInfo();
if(Integer.parseInt(cfinfo[0]) == 1)
addItem("Viderestilling altid", cfinfo[1]);
else
addItem("Viderestilling altid", "Slået fra");
if(Integer.parseInt(cfinfo[2]) == 1)
addItem("Viderestilling ved optaget", cfinfo[3]);
else
addItem("Viderestilling ved optaget", "Slået fra");
if(Integer.parseInt(cfinfo[4]) == 1)
addItem("Viderestilling ved intet svar", cfinfo[5]);
else
addItem("Viderestilling ved intet svar","Slået fra");
// Timeout Item
addItem("Timeout",cfinfo[6]);
callForwardList.notifyDataSetChanged();
}
Спасибо. Сообщение в блоге было очень полезно. – CodePrimate
Похоже, я прыгнул с пистолета на этом. onRetainNonConfigurationInstance() не существует, потому что класс, из которого я пытаюсь его переопределить, расширяет фрагмент. Предложения? – CodePrimate