2014-12-04 101 views
0

我的问题是关于android设备问题。Android设备问题

我们有一个Android设备在我们的办公室: 三星Galaxy Note 2 - GN7100(Android版本4.1.2)

我们使用此设备的Android开发&测试目的。但目前该设备正在创造一些与Android生命周期有关的问题。对于例如在onCreate()方法中,我们已经从后端下载数据,现在如果我们旋转设备onCreate()将再次调用,但我们通过将以下行添加到标记来限制在设备旋转上调用onCreate():

android:configChanges="orientation|screenLayout|keyboardHidden" 

它工作正常,但突然间这个技巧不工作,即设备调用onCreate()方法。然后我重置工厂,但问题仍然存在。

我的问题是:如果这是设备问题,那我们该如何纠正它?

在此先感谢。

+0

试试这个http://developer.android.com/guide/topics/resources/runtime-changes。 html – 2014-12-04 05:28:07

+1

当活动被创建时,onCreate()被调用...所以如果你的活动因配置改变以外的其他原因而被销毁,它会被再次调用......但是,你应该添加screenSize到你的列表中@ archon92指出,由于旋转设备将导致屏幕尺寸改变。 – Luis 2014-12-04 05:41:40

+1

谢谢。添加“screenSize”后,它工作正常。 @illegal参数,从你给定的链接我得到了以下几行,这很有用: “...为了防止在开发API级别13或更高版本时由于方向更改而导致运行时重新启动...必须包括”screenSize“值除了“方向”值之外,也就是说,必须使用android:configChanges =“orientation | screenSize”。但是,如果应用程序的目标级别为12或更低,则活动始终会处理此配置更改本身。 – Dibyendu 2014-12-04 06:45:31

回答

1

试试这个

android:configChanges="keyboardHidden|orientation|screenSize" 

和格式化你的代码。此为我工作

//Define Below in you Manifest file. 
      <activity 
        android:name="yourname" 
        android:configChanges="keyboardHidden|orientation|screenSize" 
      </activity> 

//Define Below in your activity. 

     @Override 
      public void onConfigurationChanged(Configuration newConfig) { 

       super.onConfigurationChanged(newConfig); 

       if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { 
        //your code 
       } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
      //your code 

       } 
      }