Android: активность скрывается сразу после startActivity () - PullRequest
3 голосов
/ 13 декабря 2011
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) и на Samsung 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 Ответ

3 голосов
/ 22 декабря 2011

установить этот флаг для нового намерения

yourIntent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
yourIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...