When you press back, you go back to the same old instance of the activity.
If you want the asynctask to run again you need to call its execute in onResume.
From what you have told, it seems you call the asynctask execute in the activity oncreate. When you go back from your listview activity and come back , you are creating the activity again and that is why your asynctask is executed. onResume is always called after onCreate. onResume is always called when your activity comes into focus.