我正在启动一个简单的ACTION.VIEW活动来显示Web浏览器。 但是当用户按下“后退”键时,它将返回到我的初始应用程序。该应用程序运行正常,但所有主要UI元素都已消失。
任何人都知道为什么?
以下是我启动网络浏览器的方法:
//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);
}
}
});
从该浏览器页面返回时,正常调用onStart()和onResume()。我不明白的是后背和主页按钮生命周期完美无缺。用户可以手动取消应用程序并在没有任何UI问题的情况下返回。只有从startActivity()调用返回时才会出现问题?
此外,我不需要保留任何特定的UI值....我只是希望它们出现在布局中;)
我有一个gles视图,我用它来绘制,我认为它显示在其他UI元素的前面......但我不明白为什么如果是这样......
这是一段xml和onCreate方法:
<?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);
}
答案 0 :(得分:0)
当您启动Web浏览器时,它会占用大量内存,因此安卓会杀死您的应用,当它返回活动时会重新创建它。因此,您应该使用onsaveinstancestate和onrestoreinstancestate保存动态添加的视图。 onSaveInstanceState () and onRestoreInstanceState ()