0

I'm starting an simple ACTION.VIEW activity to show up the web browser. But when the user press the "back" key, it returns to my initial application. The application is working perfectly except that all the main UI elements have disappeared.

Anyone knows why ?

Here's how I start the web browser :

    //Go to web page
    ImageButton web = (ImageButton) _gears.findViewById(R.id.Web);
    web.setOnClickListener(
        new View.OnClickListener() 
        {         
            @Override
            public void onClick(View v)
            {
                try 
                {
                    String url = "http://apps.toonboom.com/flip-boom-lite-ipad";
                    Intent i = new Intent(Intent.ACTION_VIEW);
                    Uri u = Uri.parse(url);
                    i.setData(u);
                    _mainActivity.startActivity(i);
                 } 
                catch (ActivityNotFoundException e) 
                {
                      // Raise on activity not found
                    Toast.makeText(_mainActivity.getApplicationContext(), "Browser not found.", Toast.LENGTH_SHORT);
                }
             }
        });

When coming back from that browser page, onStart() and onResume() are called normally. What I don't understand is that the back and home button lifecycle works perfectly. The user can manually go away of the app and come back without any UI problems. The problem only occurs when coming back from that startActivity() call ?

Also, I don't need to retain any specific UI values....I just want them to be present in the layout ;)

EDIT

I have a gles view that I use to draw and I think it display itself in front of the other UI elements....But I don't understand why if that is the case....

Here's a piece of the xml and the onCreate method :

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" 
android:layout_width="fill_parent"
android:layout_height="fill_parent"    
android:id="@+id/MainLayout">   


<!--  This is a dummy layout so we can add our custom GlView dynamically to this relative position -->
<LinearLayout 
    android:id="@+id/SurfaceViewLayout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:orientation="vertical"/>

<!--  This is a dummy layout so we can add the timeline dynamically to this relative position -->
<HorizontalScrollView 
        android:id="@+id/TlScroller"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_margin="0dip"
        android:padding="0dip"
        android:scrollbars="none"
        android:fillViewport="false"
        android:scrollbarFadeDuration="0"
        android:scrollbarDefaultDelayBeforeFade="0"
        android:fadingEdgeLength="0dip"
        android:scaleType="centerInside">

        <!-- HorizontalScrollView can only host one direct child -->
        <LinearLayout 
            android:id="@+id/TimelineContent" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_margin="0dip"
            android:padding="0dip"
            android:scaleType="centerInside"/>

    </HorizontalScrollView > 

<RelativeLayout
    android:id="@+id/BottomTools" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_above="@id/TlScroller" >

    <ImageButton  
        android:id="@+id/PaletteBtn"
        android:layout_width="30dip"
        android:layout_height="30dip" 
        android:background="@android:color/transparent"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="5dip"
        android:layout_marginBottom="60dip"
        android:src="@drawable/palette44x44"
        android:scaleType="centerInside"/>


     <RelativeLayout 
            android:id="@+id/PadLayout" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            android:layout_centerHorizontal="true"
            android:layout_alignParentBottom="true"
            android:src="@drawable/pad_btn"
            android:scaleType="centerInside">

         <ImageButton  
            android:id="@+id/PadBtn"
            android:layout_width="75dip"
            android:layout_height="75dip" 
            android:background="@android:color/transparent"
            android:layout_centerInParent="true"
            android:src="@drawable/pad_btn"
            android:scaleType="centerInside"/>

         <TextView
            android:id="@+id/FrameCounter" 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="0dip"
            android:padding="0dip"
            android:layout_centerInParent="true"
            android:textColor="#000000"
            android:text="#/x"/>
    </RelativeLayout>

   <ImageButton  
        android:id="@+id/PreviousBtn"
        android:layout_width="40dip"
        android:layout_height="40dip" 
        android:background="@android:color/transparent"
        android:layout_toLeftOf="@+id/PadLayout"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="15dip"
        android:src="@drawable/previous_btn"
        android:scaleType="centerInside"
        android:scaleHeight="30%"
        android:scaleWidth="30%"/>

// Goes like that with other ImageButton till the end bracket

= = =

@Override protected void onCreate(Bundle icicle) 
    {
        super.onCreate(icicle);

        //Set the main layout element
        setContentView(R.layout.ui);


           // Then most buttons are created like this . . .

           //Create the tools pop-up menu
       ImageButton toolBtn = (ImageButton) this.findViewById(R.id.CurrentToolBtn);
       _tools = new ToolsPopup(toolBtn);
    }
ognian
  • 11,291
  • 4
  • 32
  • 33
oberthelot
  • 1,280
  • 1
  • 10
  • 23

1 Answers1

0

When you launching a web browser it uses a lot of memory so android killing your app, when it is going back to activity it recreates it. So you should save your dynamically added views using onsaveinstancestate and onrestoreinstancestate. onSaveInstanceState () and onRestoreInstanceState ()

Community
  • 1
  • 1