小编pro*_*ook的帖子

在睡眠时打开Android上的互联网

我有一个需要同步到互联网的Android应用程序,但是一旦手机进入睡眠状态,我就无法访问互联网.它仅在用户使用"电池模式"时发生,当它在15分钟后关闭数据时.我写了一个测试应用程序,它打开了数据,但它仍然连接到服务器.

我尝试了什么:

  • 当我手动关闭数据时,应用程序将其打开并运行
  • 我也试过WakeLock,但它没有帮助.
  • 警报按预期工作,即使手机进入睡眠状态数小时

在摩托罗拉Atrix Android 2.3.3上测试过.我不能依靠Wifi.在现实生活中,它将每周同步.我们怎样才能成功呢?

AlarmManager:

alarm_manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent pending = PendingIntent.getBroadcast(this, 0, intent, 
                        PendingIntent.FLAG_UPDATE_CURRENT);
alarm_manager.setRepeating(AlarmManager.RTC_WAKEUP, 
                        System.currentTimeMillis(), 15000, pending);
Run Code Online (Sandbox Code Playgroud)

AlarmReceiver:

public class AlarmReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d("MYTAG", "RECEIVED getMobileDataEnabled: " + getMobileDataEnabled(context));  
        if (!isOnline(context)) {
            Log.d("MYTAG", "NO INET");
            if (turnOnInet(context)) {
                Log.d("MYTAG", "INET IS ON");
            }
        }

        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://xxx.xxx.xxx.xxx/ping/pong/moto/");
            try {
                List<NameValuePair> nameValuePairs = …
Run Code Online (Sandbox Code Playgroud)

android sleep-mode

6
推荐指数
2
解决办法
7084
查看次数

如何确保零始终在最后

我需要确保double始终以0结尾

6 = 6.0  
5.9876577878 = 5.98765778780
Run Code Online (Sandbox Code Playgroud)

我尝试了格式,但没有带来预期的结果.

如何才能做到这一点?

.net c#

0
推荐指数
1
解决办法
141
查看次数

标签 统计

.net ×1

android ×1

c# ×1

sleep-mode ×1