For Android users dealing with high v2rayNG battery drain, disconnects when the screen is locked, or both. Start by checking battery usage in Android settings, then cut unnecessary background traffic. If the service stops when the screen locks, adjust background permissions for your phone brand. Test battery use and background reliability separately.
First, find out where the battery is going
In VPN mode, v2rayNG uses Android's VPN service to receive app traffic and pass it to the Xray core. A VPN icon in the status bar means the service is running; it doesn't prove that the app is using a lot of battery. Traffic from video streaming, cloud sync, and automatic app updates may all pass through the VPN and show up as v2rayNG activity in Android's battery stats.
Go to Settings → Battery → Battery usage and check v2rayNG's foreground and background activity. Depending on your phone, this page may be called Battery usage details or Battery drain. Note the screen-on time, mobile data usage, and any sustained uploads or downloads during the same period. Don't compare a full day's usage with a reading taken just minutes after installing the app.
Run a controlled test: use the same network and similar screen-on time, then compare battery levels over one hour with v2rayNG on and off. Pause large transfers and make sure your phone doesn't switch to mobile data during the test. Battery percentages are rounded to whole numbers, so a one-point difference over an hour isn't enough to show that a setting worked. Check battery details and data usage too.
Reduce persistent connections and unnecessary requests
First, check whether the node keeps disconnecting and reconnecting. Open the v2rayNG log and look for repeated connection timeouts, DNS resolution failures, or reconnects around the time the screen locks. On an unstable network, both the core and the app may repeatedly open connections, which is different from maintaining a stable connection. Try a known-working node on the same Wi-Fi network and see whether the log quiets down.
In v2rayNG, go to Settings → Per-app proxy and use the include or exclude mode available in your version to choose which apps should use the VPN. Routing only the apps that need a proxy through the tunnel can reduce background requests handled by the core. Test an included app and an excluded app to confirm the result; choosing the wrong mode can leave the app you want to proxy outside the tunnel. Android version differences also affect how system services are routed, so the app list alone won't tell you where every request goes.
- Turn off automatic subscription updates, bulk latency tests, and continuous speed tests if you don't need them. Run a test manually when you want to compare nodes.
- Check high-traffic apps for autoplay, background sync, and automatic updates. Cutting traffic at the source is more effective than repeatedly restarting the VPN.
- After switching between home Wi-Fi and mobile data, check that your node still works. A few reconnects during a network change don't necessarily indicate an ongoing problem.
Troubleshoot in order: check traffic sources before changing background permissions
If battery usage rises alongside heavy network traffic, start by adjusting per-app proxy rules and app sync settings. Battery optimization exemptions address Android stopping a background service; they won't reduce the power used by normal data transfers.
If the VPN disconnects when the screen locks, check battery optimization settings
Allow background activity and battery optimization exemptions may be separate settings. The first controls whether an app can stay active in the background; the second controls Android's limits on background work. Start at Settings → Apps → v2rayNG → Battery and look for options such as Battery usage, Background battery usage, or Battery optimization. Allow background activity or choose Unrestricted, then lock the screen for ten minutes and test the connection.
Menu names vary by brand and Android version. Use the paths below to find similar settings; if the labels differ, look for Battery, Background, or Autostart on the app info page. Grant these permissions only to v2rayNG if you need a persistent connection—there's no need to exempt every app.
| Phone brand | Where to look | Settings to check |
|---|---|---|
| Xiaomi and Redmi | Settings → Apps → Manage apps → v2rayNG → Battery saver | Choose No restrictions if needed, then check the app's autostart permission. |
| Huawei and Honor | Settings → Apps → App launch → v2rayNG | Turn off automatic management and check that background activity is allowed. Menu names vary by system version. |
| OPPO and OnePlus | Settings → Apps → App management → v2rayNG → Battery usage | Check that background activity is allowed and enable autostart if available. |
| vivo | Settings → Battery → Background power consumption management → v2rayNG | Allow high background power consumption, then check autostart under App management. |
| Samsung | Settings → Apps → v2rayNG → Battery | Choose Unrestricted if needed, and check the list of sleeping apps. |
Tell background restrictions apart from network dropouts
A page that won't load after you lock the screen doesn't necessarily mean Android stopped v2rayNG. Unlock the phone, check the VPN icon and v2rayNG status, then try opening a regular webpage. If the app still says it's connected and the issue clears only after switching Wi-Fi, check the network change, node availability, and DNS first. If you have to restart the service every time you unlock the phone, revisit battery management and autostart settings.
Error: java.net.UnknownHostException
Cause and fix: This exception means the hostname couldn't be resolved; it doesn't directly point to battery optimization. Check the node address, compare DNS results on Wi-Fi and mobile data, and see whether the error appears only after switching networks.
Error: net::ERR_TIMED_OUT
Cause and fix: This browser message indicates a connection timeout, but it doesn't identify a background permission issue on its own. Confirm the VPN service is running, try a known-accessible webpage, and check the connection result in the v2rayNG log.
Keep a timeline while troubleshooting: note when you lock and unlock the screen, the network type, whether the VPN icon is present, and the result of your first request. If the problem occurs only with Android Battery Saver on, repeat the test with it off. If it happens only when switching between Wi-Fi and mobile data, don't assume Android killed the app. Change one setting at a time so you can tell what affected the result.
When to run speed tests and update subscriptions
Latency tests open network connections, and bulk tests send more requests as the number of nodes increases. Download speed tests transfer data, so their battery use isn't directly comparable to a latency check. To confirm that your current node works, test that node alone. Run a manual bulk test of candidate nodes only when you need to choose a different one.
Subscription updates fetch the node list from your provider; they don't keep an existing VPN connection alive. If automatic updates are enabled, check that the interval suits your needs. Changing the interval from 5 minutes to 30 minutes reduces the theoretical update frequency from 12 times an hour to 2. That's just a frequency calculation, not a guarantee of proportional battery savings. If an update fails, check the subscription URL and network access instead of shortening the interval and retrying repeatedly.
The connection drops after ten minutes with the screen locked. Which setting should I change first?
Go to Settings → Apps → v2rayNG → Battery, allow background activity, and test again for ten minutes. If you still have to restart the service, check autostart and the system's sleeping apps list.
Why are battery stats still high after setting the app to Unrestricted?
Unrestricted changes how Android manages background activity. Check the time range under Battery usage and see whether video, sync, or downloads are passing through the VPN.
Why isn't my selected app using the node after I set up per-app proxying?
In v2rayNG, go to Settings → Per-app proxy and check whether you're using include or exclude mode. Then make a new request from the app you're testing.
Should I keep bulk speed tests running all the time?
No. Run a test manually when choosing a node. For everyday use, check whether the current node works, then compare background activity after stopping repeated tests.
How to verify your settings
Retest under the same conditions: use the same network and node, note the starting battery level and time, then lock the screen for ten minutes and check that the service is still running. Continue monitoring for an hour. Check webpage requests, the v2rayNG log, battery usage, and network traffic. If the connection is stable and background activity has fallen, keep the settings. If the disconnects stop but battery use rises noticeably, remove any unnecessary battery exemptions one at a time.
- First, confirm the node is stable; rule out repeated timeouts and reconnects.
- Then narrow the per-app proxy list and stop unnecessary bulk speed tests.
- Change battery optimization and autostart settings only if Android is actually stopping the service when the screen locks.
- After each change, lock the screen and test again. Record connection status and battery usage.
Android version, manufacturer-specific features, and the v2rayNG version can all affect menu names and background behavior. If you can't find a setting listed here, search Settings for Battery optimization, Background activity, or Autostart. Don't assume the same steps apply based on a screenshot from another phone. The goal isn't to disable every restriction, but to keep the connection stable with as few background permissions as possible.