私のアプリケーションの現在の実装に問題があります。 asynctask onActivityCreatedを実行しますが、ユーザーが単に電話の向きを変更した場合、これを行うことには興味がありません。ユーザーが携帯電話の向きを変更したときに非災害の非同期呼び出しが行われないようにする適切な方法は何ですか?アプリケーションが方向スイッチを切り替えるたびにAsyncTaskを実行する
ここには2つのメソッド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()は、それを上書きしようとしているクラスがFragmentを継承しているため、存在しません。提案? – CodePrimate