2012-12-06 16 views
2

我有三项活动说ABC,从活动A我去B和搜索城市,从活动B IAM去活动C,在C我保存一些东西,我把异步任务 这将在Activit保存一个列表视图,问题是在列表中保存时,我打后退按钮我再次看到活性的与不节能,我以前保存的Android:Intent- FLAG_ACTIVITY_NO_HISTORY无法正常工作

private class Savecity extends AsyncTask<city, String, String> { 

     @Override 
     protected void onPostExecute(String result) { 
      super.onPostExecute(result); 
      if(result != null && result.equals("sucess")){ 

      Intent intent = new Intent(activity, cityActivity.class); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
      startActivity(intent);} 

     } 
     @Override 
     protected String doInBackground(city... arg0) { 
      try { 
       ((CityPreferences) activity.getApplication()).createcity(arg0[0]); 

       return "sucess"; 
      } catch (Exception e) { 
       Log.e(TAG, "", e); 
       return "fail"; 
      } 
     } 
+0

您的问题标题和内部描述不相关。无论如何,一旦你保存你的数据,你需要刷新活动A的列表 – waqaslam

+0

我可以看到活动A中的数据,当我点击后退按钮时,我再次看到活动A没有保存的数据.. – teekib

+0

看到我的答案.. 。 – waqaslam

回答

5

其实在你的活动C当你试图重新呼叫活动A,所有你需要做的是要明确活动堆栈。例如:

Intent i = new Intent(getBaseContext(), Activity_A.class); 
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 
+0

我试过你代码,但仍然不工作:( – teekib

+1

嗨,对不起,其实itz与Intent.FLAG_ACTIVITY_CLEAR_TOP工作),谢谢 – teekib

14

您可以实现这个名称后您的AndroidManifest.xml文件,只需添加android:noHistory="true"属性在那些<activity>你想

希望这有助于..

+0

没有好友伊茨仍不:( – teekib

+0

工作@ Zennon..hey实际上伊茨工作,之前我已经把它错activity..thanks很多 – teekib

+0

一些问题,单击后退按钮时,没有去活动C,它失去它的历史这应该不会发生,它应该只从历史活动C – teekib