2015-06-26 68 views
0

我正在构建一个连接蓝牙模块的Android应用程序。当创建应用程序时,执行连接到模块的线程。当我旋转手机时,应用程序重新启动并且连接线程再次运行。为了解决这个问题,我添加了ScrollView不滚动,应用程序重新启动方向更改

android:configChanges="orientation|screenSize" 
android:windowSoftInputMode="adjustResize|stateHidden" 

到Android清单文件。现在应用程序不会重新启动,但在活动中使用的ScrollView不会滚动。任何想法让滚动视图可滚动,并防止应用程序重新启动?

这里是我的XML文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true" 
    android:layout_above="@+id/imageView"> 

    <LinearLayout 
     android:id="@+id/linear" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/imageView" 
     android:background="#bf000000" 
     android:orientation="vertical" 
     tools:context=".MainActivity"> 

     <TextView 
      android:id="@+id/txtReceive1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:visibility="gone" /> 

     <TableLayout 
      android:id="@+id/table" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="#fff3f3f2" 
      android:shrinkColumns="*" 
      android:stretchColumns="*"> 

      <TableRow> 

       <TextView 
        android:layout_width="wrap_content" 
        android:gravity="center" 

        android:padding="8dip" 
        android:text="CH" /> 

       <TextView 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" 
        android:text="kWh" /> 

       <TextView 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" 
        android:text="Load" /> 

       <TextView 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" 
        android:text="Date" /> 
      </TableRow> 

      <TableRow> 

       <TextView 
        android:id="@+id/t11" 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" 
        android:text="1" /> 

       <TextView 
        android:id="@+id/t12" 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" /> 

       <TextView 
        android:id="@+id/t13" 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" /> 

       <TextView 
        android:id="@+id/t14" 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" /> 
      </TableRow> 

      <TableRow> 

       <TextView 
        android:id="@+id/t21" 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" 
        android:text="2" /> 

       <TextView 
        android:id="@+id/t22" 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" /> 

       <TextView 
        android:id="@+id/t23" 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" /> 

       <TextView 
        android:id="@+id/t24" 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" /> 
      </TableRow> 

      <TableRow> 

       <TextView 

        android:id="@+id/t31" 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" 
        android:text="3" /> 

       <TextView 

        android:id="@+id/t32" 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" /> 

       <TextView 

        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" /> 

       <TextView 

        android:id="@+id/t34" 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" /> 
      </TableRow> 

      <TableRow> 

       <TextView 

        android:id="@+id/t41" 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" 
        android:text="4" /> 

       <TextView 
        android:id="@+id/t42" 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" /> 

       <TextView 

        android:id="@+id/t43" 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" /> 

       <TextView 

        android:id="@+id/t44" 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" /> 
      </TableRow> 

      <TableRow> 

       <TextView 
        android:id="@+id/t51" 
        android:layout_width="wrap_content" 

        android:gravity="center" 
        android:padding="8dip" 
        android:text="5" /> 

       <TextView 
        android:id="@+id/t52" 

        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" /> 

       <TextView 
        android:id="@+id/t53" 

        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" /> 

       <TextView 
        android:id="@+id/t54" 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:padding="8dip" /> 
      </TableRow> 
     </TableLayout> 

     <TextView 
      android:id="@+id/txtReceive" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_below="@+id/table" 
      android:background="#ff8c00" 
      android:padding="6dip" /> 

     <LinearLayout 
      android:id="@+id/lin2" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:paddingTop="5dp" 
      android:visibility="visible" 
      android:weightSum="2"> 

      <LinearLayout 
       android:id="@+id/rel" 
       android:layout_width="fill_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:orientation="vertical" 
       android:visibility="visible" 
       android:weightSum="4"> 


       <RelativeLayout 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:layout_weight="1"> 

        <Button 
         android:id="@+id/imageButton1" 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:background="@drawable/btn_01_small" 
         android:textColor="#ffa5ff45" /> 

        <TextView 
         android:id="@+id/textView3" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignTop="@+id/imageButton1" 
         android:layout_centerHorizontal="true" 
         android:text="Channel" 
         android:textSize="22sp" /> 

        <TextView 
         android:id="@+id/textView9" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignBottom="@+id/imageButton1" 
         android:layout_centerHorizontal="true" 
         android:text="0" 
         android:textColor="#ffa5ff45" 
         android:textSize="22sp" /> 

       </RelativeLayout> 

       <RelativeLayout 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:layout_weight="1"> 

        <Button 
         android:id="@+id/imageButton2" 
         android:layout_width="fill_parent" 
         android:layout_height="match_parent" 
         android:background="@drawable/btn_02" 
         android:textColor="#ffa5ff45" /> 

        <TextView 
         android:id="@+id/textView6" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignTop="@+id/imageButton2" 
         android:layout_centerHorizontal="true" 
         android:text="kWh" 
         android:textSize="22sp" /> 

        <TextView 
         android:id="@+id/textView10" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignBottom="@+id/imageButton2" 
         android:layout_centerHorizontal="true" 
         android:text="000.0" 
         android:textColor="#ffa5ff45" 
         android:textSize="22sp" /> 
       </RelativeLayout> 

       <RelativeLayout 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:layout_weight="1"> 

        <Button 
         android:id="@+id/imageButton3" 
         android:layout_width="fill_parent" 
         android:layout_height="match_parent" 
         android:background="@drawable/btn_03" 
         android:textColor="#ffa5ff45" /> 

        <TextView 
         android:id="@+id/textView7" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignTop="@+id/imageButton3" 
         android:layout_centerHorizontal="true" 
         android:text="Load" 
         android:textSize="22sp" /> 

        <TextView 
         android:id="@+id/textView11" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignBottom="@+id/imageButton3" 
         android:layout_centerHorizontal="true" 
         android:text="000" 
         android:textColor="#ffa5ff45" 
         android:textSize="22sp" /> 
       </RelativeLayout> 

       <RelativeLayout 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:layout_weight="1"> 

        <Button 
         android:id="@+id/imageButton4" 
         android:layout_width="fill_parent" 
         android:layout_height="match_parent" 
         android:background="@drawable/btn_04_small" /> 

        <TextView 
         android:id="@+id/textView8" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignTop="@+id/imageButton4" 
         android:layout_centerHorizontal="true" 
         android:text="Days" 
         android:textSize="22sp" /> 

        <TextView 
         android:id="@+id/textView12" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignBottom="@+id/imageButton4" 
         android:layout_centerHorizontal="true" 
         android:text="000" 
         android:textColor="#ffa5ff45" 
         android:textSize="22sp" /> 

       </RelativeLayout> 
      </LinearLayout> 

      <LinearLayout 
       android:id="@+id/rel2" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_alignParentRight="true" 
       android:layout_below="@+id/txtReceive" 
       android:layout_weight="1" 
       android:orientation="vertical" 
       android:visibility="visible" 
       android:weightSum="4"> 

       <RelativeLayout 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:layout_weight="1"> 

        <Button 
         android:id="@+id/imageButton12" 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:background="@drawable/btn_01_small" 
         android:textColor="#ffa5ff45" /> 

        <TextView 
         android:id="@+id/textView32" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignTop="@+id/imageButton12" 
         android:layout_centerHorizontal="true" 
         android:text="Auto ON" 
         android:textSize="22sp" /> 

        <TextView 
         android:id="@+id/textView92" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignBottom="@+id/imageButton12" 
         android:layout_centerHorizontal="true" 
         android:text="00:00" 
         android:textColor="#ffa5ff45" 
         android:textSize="22sp" /> 

       </RelativeLayout> 

       <RelativeLayout 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:layout_weight="1"> 

        <Button 
         android:id="@+id/imageButton22" 
         android:layout_width="fill_parent" 
         android:layout_height="match_parent" 
         android:background="@drawable/btn_04_small" 
         android:textColor="#ffa5ff45" /> 


        <TextView 
         android:id="@+id/textView62" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignTop="@+id/imageButton22" 
         android:layout_centerHorizontal="true" 
         android:text="Auto OFF" 
         android:textSize="22sp" /> 


        <TextView 
         android:id="@+id/textView102" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignBottom="@+id/imageButton22" 
         android:layout_centerHorizontal="true" 
         android:text="00:00" 
         android:textColor="#ffa5ff45" 
         android:textSize="22sp" /> 


       </RelativeLayout> 

       <RelativeLayout 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:layout_weight="1"> 

        <Button 
         android:id="@+id/imageButton31" 
         android:layout_width="fill_parent" 
         android:layout_height="match_parent" 
         android:layout_marginBottom="-14dp" 
         android:layout_marginTop="7dp" 
         android:background="@drawable/send_btn_01" 
         android:text="SET TIME" 
         android:textSize="22sp" /> 
       </RelativeLayout> 

       <RelativeLayout 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:layout_weight="1"> 

        <Button 
         android:id="@+id/imageButton32" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_marginBottom="-7dp" 
         android:background="@drawable/send_btn_01" 
         android:padding="0dp" 
         android:scaleType="matrix" 
         android:text="RECHARGE" 
         android:textSize="22sp" /> 
       </RelativeLayout> 

      </LinearLayout> 
     </LinearLayout> 


    </LinearLayout> 
</ScrollView> 

<ImageView 
    android:id="@+id/imageView" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:adjustViewBounds="true" 
    android:background="#bf000000" 
    android:src="@drawable/base_irya_left1" /> 

回答

1

活动在屏幕旋转中被破坏并重新创建,您可能需要这样做,因为它会正确调整所有UI元素的大小。

在单独的单例类中创建蓝牙连接/线程,以使其独立于活动或使其相关活动成员保持静态。

但是,一定要正确销毁它,以便它不会在合法的应用程序生命周期之外泄漏/持续存在。

+0

好的非常感谢你 –

1

当屏幕旋转时,活动的应用程序没有重新启动。

注意:每次用户旋转屏幕时,您的活动将被破坏并重新创建。当屏幕改变方向时,系统会破坏并重新创建前景活动,因为屏幕配置已更改,您的活动可能需要加载替代资源(例如布局)。

http://developer.android.com/training/basics/activity-lifecycle/recreating.html

,你能否告诉我们,滚动型的XML声明?

+0

我会将其添加在问题 –

相关问题