zoukankan      html  css  js  c++  java
  • android修改系统时区

     动态注册广播接收器必须有实例存在
    静态不要实例存在
     
    设置系统时区:

    AlarmManager mAlarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    mAlarmManager.setTimeZone("GMT+08:00");

    设置时区需要在manifest.xml中增加如下权限:
    <!-- 允许设置时区-->
    <uses-permission android:name="android.permission.SET_TIME_ZONE" />
     
    package com.lzh.modeify;

    import java.util.Calendar;
    import java.util.Timer;

    import android.R.integer;
    import android.app.Service;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.os.IBinder;
    import android.util.Log;

    public class ZoneService extends Service {
        private static final String ACTION_DATE_CHANGED = Intent.ACTION_DATE_CHANGED;
        private static final String ACTION_TIME_CHANGED = Intent.ACTION_TIME_CHANGED;

        private BroadcastReceiver TimerChangered = new BroadcastReceiver() {

            @Override
            public void onReceive(Context context, Intent intent) {

                Calendar c = Calendar.getInstance();// 可以对每个时间域单独修改

    //            int year = c.get(Calendar.YEAR);
    //            int month = c.get(Calendar.MONTH);
    //            int date = c.get(Calendar.DATE);
                int hour = c.get(Calendar.HOUR_OF_DAY);
                int minute = c.get(Calendar.MINUTE);
                int second = c.get(Calendar.SECOND);

                Log.v("time", Integer.toString(hour)+Integer.toString(minute)+Integer.toString(second));
            }
        };

        private BroadcastReceiver stopServiceReceiver = new BroadcastReceiver() {

            public void onReceive(android.content.Context context, Intent intent) {
                ZoneService.this.stopSelf();
                ZoneService.this.unregisterReceiver(stopServiceReceiver);
            };
        };

        @Override
        public void onCreate() {

            super.onCreate();
            Log.i("liujun", "后台进程被创建。。。");
            IntentFilter intentFilter = new IntentFilter("closeService");
            ZoneService.this.registerReceiver(stopServiceReceiver, intentFilter);
            // 服务启动广播接收器,使得广播接收器可以在程序退出后在后天继续执行,接收系统时间变更广播事件

            ZoneService.this.registerReceiver(TimerChangered, new IntentFilter(
                    Intent.ACTION_TIME_TICK));

        }

        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {

            Log.i("liujun", "后台进程。。。");
            return super.onStartCommand(intent, flags, startId);

        }

        @Override
        public void onDestroy() {

            Log.i("liujun", "后台进程被销毁了。。。");
            super.onDestroy();
        }

        @Override
        public IBinder onBind(Intent intent) {
            // TODO 自动生成的方法存根
            return null;
        }

    }

     
        MainActivity.this.sendBroadcast(new Intent("closeService"));
     
        MainActivity.this.startService(new Intent(MainActivity.this,ZoneService.class));
  • 相关阅读:
    Unity3D实践系列08, MonoBehaviour类的各种触发事件
    Unity3D实践系列07,组件的启用或禁用开关,物体的的可见或不可见开关,以及相应事件
    Unity3D实践系列06,球体撞击物体游戏
    Linux tee的花式用法和pee
    bash内置命令mapfile:读取文件内容到数组
    Perl正则表达式引用
    Perl文件句柄引用
    透明代理、正向代理、反向代理的区别说明
    Perl回调函数和闭包
    一文搞懂:词法作用域、动态作用域、回调函数、闭包
  • 原文地址:https://www.cnblogs.com/lzh-Linux/p/4455932.html
Copyright © 2011-2022 走看看