【问题标题】:How to automatically Start an activity at the same time for all clients?如何自动为所有客户同时启动一项活动?
【发布时间】:2021-09-14 08:56:04
【问题描述】:

我正在使用 java 制作一个 android 游戏应用程序,其中用户可以选择注册游戏并在未来某个时间开始玩游戏(比如游戏在今天下午 5:00 开始)。 我的问题是假设有 100 个用户注册了在下午 5:00 开始的游戏,那么如果用户打开了应用程序,如何在下午 5:00 自动为所有 100 个用户启动相同的活动/意图? 如果用户还没有打开应用程序,我会通知他“游戏即将开始,请玩您注册的游戏。”我应该用什么来做到这一点?我应该使用 Alarmmanager、job scheduler、Workmanager 还是 Broadcast Receiver?以及如何正确使用它们。

【问题讨论】:

    标签: android-studio android-activity broadcastreceiver android-workmanager android-jobscheduler


    【解决方案1】:

    您可以使用foreground service

    此方法将帮助您从通知服务或其他服务自动打开应用程序

    private void autoOpenApp() {
        ///----Auto open app----\\\
        PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
        PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK |
                PowerManager.ACQUIRE_CAUSES_WAKEUP |
                PowerManager.ON_AFTER_RELEASE, "app:WakeLock");
        wakeLock.acquire(10000);
    
            Intent intent = new Intent(this, YOUR_ACTIVITY_WHICH_YOU_WANT_TO_OPEN.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
    
    }
    

    添加权限

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    

    &lt;activity.../&gt;标签内的清单中添加android:launchModeandroid:showOnLockScreen

        <activity
            android:name="YOUR_ACTIVITY_WHICH_YOU_WANT_TO_OPEN"
            android:launchMode="singleTop"
            android:showOnLockScreen="true"
    

    【讨论】:

    • 感谢您对此的回答。我想知道 wakeLock.acquire(10000) 中的 10000 是什么?我可以将游戏开始后的剩余时间(以毫秒为单位)代替 10000 吗?
    • 否,超时获取唤醒锁。确保设备处于创建唤醒锁时请求的级别。给定的超时时间到期后,锁将被释放。阅读此developer.android.com/reference/android/os/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多