让活动在后台保持活动状态,直到用户不终止或关闭应用程序?

2023-12-12

我可以让 Android 活动在后台保持活动状态,直到用户不终止或关闭应用程序吗?

我想检测用户在后台点击一些特定的硬件按钮点击,如onKeyDown在服务中不可用,我需要让我的活动在后台保持活动状态,直到用户杀死该应用程序。

Android 允许这样的行为吗?

Update :

我能够使用以下方法解决这个问题:

1]使用前台服务, 参考:https://developer.android.com/guide/components/services.html#Foreground

2] 要处理媒体按钮单击,请在 Android 21 + 之后使用以下方法(在前台服务的 onCreate() 中使用此代码):

mediaSession = new MediaSessionCompat(this, TAG);
        mediaSession.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS);
        mediaSession.setCallback(new MediaSessionCompat.Callback() {
            @Override
            public boolean onMediaButtonEvent(Intent mediaButtonEvent) {
                if (mediaButtonEvent.getAction().equals(Intent.ACTION_MEDIA_BUTTON)) {
                    KeyEvent event = (KeyEvent) mediaButtonEvent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
                    if (KeyEvent.KEYCODE_HEADSETHOOK == event.getKeyCode() && event.getAction() == KeyEvent.ACTION_DOWN) {
                        Log.e(TAG, "Media Button clicked");
                        handleHeadphoneClick();
                    }
                }
                return false;
            }
        });
        mediaSession.setActive(true);

Ref : https://developer.android.com/guide/topics/media-apps/mediabuttons.html


来自developer.android.com

服务是在后台运行以执行的组件 长时间运行的操作或为远程进程执行工作。 A 服务不提供用户界面。例如,一个服务 当用户处于不同的状态时,可能会在后台播放音乐 应用程序,或者它可能会通过网络获取数据而不会阻塞 用户与活动的交互。另一个组件,例如 Activity,可以启动服务并让它运行或按顺序绑定到它 与之互动。服务作为 Service 的子类实现 您可以在服务开发人员指南中了解更多信息。

因此,只要您创建一个服务,并且用户退出您的应用程序,它仍然会运行。就像上面的例子一样。

这应该为您提供所需的所有信息:访问此链接

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让活动在后台保持活动状态,直到用户不终止或关闭应用程序? 的相关文章

随机推荐