【问题标题】:Android: WakeLock only for internet connection?Android:WakeLock 仅用于互联网连接?
【发布时间】:2021-11-29 04:19:03
【问题描述】:

我的应用使用需要互联网连接才能在后台运行的服务。但是,当 android 进入睡眠状态时,我的服务无法再访问互联网。我已经看到唤醒锁可以修复它,但它似乎只是保持网络正常运行的过度杀伤力。有没有其他方法可以做到这一点?

whatsapp 之类的应用如何处理这个问题?

【问题讨论】:

  • Firebase JobDispatcher 对您有用吗?它会在满足某些限制条件时启动,其中包括互联网连接。
  • @azizbekian 这不是互联网连接被切断,我的服务离线。该服务无法访问互联网。
  • @mehulmpt 任何解决方案?
  • 对此@mehulmpt 有任何解决方案吗?我面临着类似的问题:stackoverflow.com/q/47954615/1259763

标签: android wakelock android-wake-lock


【解决方案1】:
      namespace blablabla
  {
  [BroadcastReceiver]
public class blablabla : BroadcastReceiver
{
    

    public override void OnReceive(Context context, Intent intent)
    {

        PowerManager pm = (PowerManager)Android.App.Application.Context.GetSystemService(Context.PowerService);
        PowerManager.WakeLock wakeLock = pm.NewWakeLock(WakeLockFlags.Full, 
        "BackgroundReceiver");
        wakeLock.Acquire();

        //var context = this.ApplicationContext;
        WifiManager wifiManager = 
       (WifiManager)context.GetSystemService("wifi");
        WifiLock mWifiLock = 
        wifiManager.CreateWifiLock(Android.Net.WifiMode.Full, "WifiLock");
        mWifiLock.Acquire();


        //you code



       mWifiLock.Release();
        wakeLock.Release();

    }}}

为其他人寻找答案

【讨论】:

    猜你喜欢
    • 2013-04-21
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    • 2019-08-28
    • 2012-01-17
    相关资源
    最近更新 更多