Java 从纵向模式更改为横向模式时重新启动活动

Java 从纵向模式更改为横向模式时重新启动活动,java,android,xml,android-layout,Java,Android,Xml,Android Layout,我为我的活动构建了两个XML文件。一个在布局文件夹中,另一个在布局土地文件夹中。但当我将方向从纵向模式更改为横向模式时,活动将重新启动。这正是我不想要的。 因为我在三个图形中绘制实时数据,当我打开屏幕时,绘制应该继续,并且不会被中断或以任何方式开始新的绘制 以下是layout land文件夹中的第一个XML文件: <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.a

我为我的活动构建了两个XML文件。一个在布局文件夹中,另一个在布局土地文件夹中。但当我将方向从纵向模式更改为横向模式时,活动将重新启动。这正是我不想要的。 因为我在三个图形中绘制实时数据,当我打开屏幕时,绘制应该继续,并且不会被中断或以任何方式开始新的绘制

以下是layout land文件夹中的第一个XML文件:

 <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" 

 >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="496dp"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:id="@+id/my_layout" >

<com.jjoe64.graphview.GraphView
    android:id="@+id/sensor1_graph_Feuchtigkeit"
    android:layout_width="match_parent"
    android:layout_height="270dp"
    android:layout_alignLeft="@+id/sensor1_graph_Druck"
    android:layout_alignParentTop="true" />

<com.jjoe64.graphview.GraphView
    android:id="@+id/sensor1_graph_Temperatur"
    android:layout_width="match_parent"
    android:layout_height="270dp"
    android:layout_alignLeft="@+id/sensor1_graph_Feuchtigkeit"
    android:layout_below="@+id/sensor1_graph_Feuchtigkeit"
    android:layout_marginTop="8dp" />

<com.jjoe64.graphview.GraphView
    android:id="@+id/sensor1_graph_Druck"
    android:layout_width="match_parent"
    android:layout_height="270dp"
    android:layout_below="@+id/sensor1_graph_Temperatur"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="8dp" />

<Switch
    android:id="@+id/mySwitch"
    android:layout_width="wrap_content"
    android:layout_height="30dp"
    android:layout_below="@+id/sensor1_graph_Druck"
    android:layout_centerHorizontal="false"
    android:layout_marginTop="8dp"
     />

<TextView
    android:id="@+id/TextView01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/switchStatus"
    android:layout_alignParentBottom="true"
    android:text="Medium Text"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/switchStatus"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/mySwitch"
    android:layout_alignBottom="@+id/mySwitch"
    android:layout_marginLeft="15dp"
    android:layout_toRightOf="@+id/mySwitch"
    android:text="Medium Text"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<Switch
    android:id="@+id/switch1"
    android:layout_width="wrap_content"
    android:layout_height="30dp"
    android:layout_alignLeft="@+id/mySwitch"
    android:layout_alignParentBottom="true"
     />

    </RelativeLayout>

    </ScrollView>

这里是布局文件夹中的第二个:

 <?xml version="1.0" encoding="utf-8"?>
 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" 

 >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="496dp"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:id="@+id/my_layout" >

<com.jjoe64.graphview.GraphView
    android:id="@+id/sensor1_graph_Feuchtigkeit"
    android:layout_width="match_parent"
    android:layout_height="130dp"
    android:layout_alignLeft="@+id/sensor1_graph_Druck"
    android:layout_alignParentTop="true" />

<com.jjoe64.graphview.GraphView
    android:id="@+id/sensor1_graph_Temperatur"
    android:layout_width="match_parent"
    android:layout_height="130dp"
    android:layout_alignLeft="@+id/sensor1_graph_Feuchtigkeit"
    android:layout_below="@+id/sensor1_graph_Feuchtigkeit"
    android:layout_marginTop="8dp" />

<com.jjoe64.graphview.GraphView
    android:id="@+id/sensor1_graph_Druck"
    android:layout_width="match_parent"
    android:layout_height="130dp"
    android:layout_below="@+id/sensor1_graph_Temperatur"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="8dp" />

<Switch
    android:id="@+id/mySwitch"
    android:layout_width="wrap_content"
    android:layout_height="30dp"
    android:layout_below="@+id/sensor1_graph_Druck"
    android:layout_centerHorizontal="false"
    android:layout_marginTop="8dp"
     />

<TextView
    android:id="@+id/TextView01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/switchStatus"
    android:layout_alignParentBottom="true"
    android:text="Medium Text"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/switchStatus"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/mySwitch"
    android:layout_alignBottom="@+id/mySwitch"
    android:layout_marginLeft="15dp"
    android:layout_toRightOf="@+id/mySwitch"
    android:text="Medium Text"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<Switch
    android:id="@+id/switch1"
    android:layout_width="wrap_content"
    android:layout_height="30dp"
    android:layout_alignLeft="@+id/mySwitch"
    android:layout_alignParentBottom="true"
     />

    </RelativeLayout>

    </ScrollView>

在清单XML中,它如下所示:

 <activity
        android:name="com.TomKun.testgraph.DruckActivity"
        android:label="@string/Sensor_1"
        android:launchMode="singleTask"
           android:configChanges="orientation|screenSize|keyboard|keyboardHidden">
    </activity>

如果我有这样的清单

android:configChanges="orientation|screenSize|keyboard|keyboardHidden">
        </activity>
android:configChanges=“方向|屏幕大小|键盘|键盘隐藏”>
当我从纵向模式切换到横向模式时,布局不会改变。但这项活动并没有重新启动。这是一件好事

但是如果我不使用

android:configChanges="orientation|screenSize|keyboard|keyboardHidden">
        </activity>
android:configChanges=“方向|屏幕大小|键盘|键盘隐藏”>
布局会根据我的需要进行更改,但活动将重新启动

所以我的实现中有些东西不匹配

有人能帮我解决这个问题吗

我看到很多人在stackoverflow上也有类似的问题。但有了这些答案,我无法解决我的问题


提前谢谢

这就是安卓的工作原理。已启用方向更改,活动已重新启动。方向更改已禁用,活动未重新启动。@FrankN.Stein但是,我们可以看到任何视频,而无需分别在纵向和横向视图中再次加载。如何操作?当方向改变时,可以使用onConfigurationChanged()方法重新加载数据。安卓就是这样工作的。已启用方向更改,活动已重新启动。方向更改已禁用,活动未重新启动。@FrankN.Stein但是,我们可以看到任何视频,而无需分别在纵向和横向视图中再次加载。如何操作?可以使用onConfigurationChanged()方法在方向更改时重新加载数据。