2 ssummeraw ssummeraw 于 2013.03.04 10:44 提问

当旋转移动设备时,onCreate方法被重复调用

在Main Activity 里的 onCreate() 方法中调用一个 AsyncTask。在同一个 Activity 中,如果方向改变后,AsyncTask 被再次调用。如何调整程序来阻止 AsyncTask 被再次调用呢?

public class Main extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pages);
        StartProcess sProcess = new StartProcess();
        sProcess.execute(this);
    }
}

3个回答

xiaoyaovsxin
xiaoyaovsxin   2013.03.04 15:32
已采纳

在AndroidManifest.xml的该activity中
添加属性:android:configChanges="orientation|screenSize|keyboardHidden"
另外,在旋转屏幕时会调用:

@Override
public void onConfigurationChanged(Configuration newConfig) {
      super.onConfigurationChanged(newConfig);
}

你如果在旋转的时候需要做什么,在这里面写。

ssummeraw
ssummeraw 很好的回答,谢谢你!
大约 5 年之前 回复
s_STEFANIE_s
s_STEFANIE_s   2013.03.04 14:44

要在AndroidManifest.xml中的Main那个Activity节点中加入:

android:configChanges="orientation|screenSize"

3.2之前的版本只加入:android:configChanges="orientation|keyboardHidden"即可

suannai0314
suannai0314 帮你编辑了下代码的格式,更多markdown的使用可以参看http://ask.csdn.net/pages/markdown
大约 5 年之前 回复
yanzi1225627
yanzi1225627   2013.03.04 14:36

你可以加一个flag,然后写一个监听,来监听手机的状态。不知道可以不??

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!