安卓:WakeLock只用于网络连接吗?

3
我的应用程序使用一个需要互联网连接才能在后台工作的服务。然而,当Android进入睡眠状态时,我的服务无法再访问互联网。我知道wakelock可以解决这个问题,但它似乎对于仅保持网络连接来说过于繁琐。是否有其他方法可以实现这一点?
像WhatsApp这样的应用程序是如何处理这个问题的?

Firebase JobDispatcher对你是否有用?当满足某些限制条件时,它会启动,其中包括互联网连接。 - azizbekian
1
@azizbekian 并不是因为网络连接中断了,而是我的服务离线了。该服务无法访问互联网。 - mehulmpt
@mehulmpt 有任何解决方案吗? - UMESH0492
@mehulmpt,你有解决这个问题的方法吗?我也遇到了类似的问题:https://stackoverflow.com/q/47954615/1259763 - Federico Alvarez
1个回答

0
      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();

    }}}

为其他寻求答案的人提供帮助


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接