Android:活动在startActivity()之后立即隐藏

时间:2011-12-13 13:21:49

标签: android android-activity

private void setActionViewListener(final String uri) {
    mediaButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(uri)));
        }
    });

}

上面的代码用于使用给定的URL启动浏览器。 URL包含声音文件(mp3)或视频文件(mp4)的链接。该代码适用于多个设备。但我们在HTC Desire(Android v 2.2)和三星Galaxy Nexus(Android v 4.0)上遇到了问题。在这些设备上,浏览器会闪烁并再次隐藏。显然,意图被广播和接收,但不知何故,ActivityManager将新的浏览器活动移动到后台。

Logcat显示以下信息(注意粗线):

12-13 14:12:02.089: DEBUG/SurfaceFlinger(96): Layer::requestBuffer(this=0x71e430), index=0, pid=3369, w=480, h=90 success
**12-13 14:12:02.109: INFO/ActivityManager(96): Starting activity: Intent { act=android.intent.action.VIEW dat=http://<hostname>/StaticContent/<movie>.mp4 typ=video/mp4 cmp=android/com.android.internal.app.ResolverActivity }**
12-13 14:12:02.119: DEBUG/webkit-timers(3369): [JWebCoreJavaBridge::pause] >> do pause
12-13 14:12:02.119: DEBUG/webviewglue(3369): nativeDestroy view: 0xb59150
**12-13 14:12:02.119: INFO/ActivityManager(96): moveTaskToBack: 67**
12-13 14:12:02.129: DEBUG/SurfaceFlinger(96): Layer::setBuffers(this=0x9032e8), pid=6155, w=480, h=800

有没有人看到这个问题?

1 个答案:

答案 0 :(得分:3)

为新意图设置此标志

yourIntent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
yourIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);