zoukankan      html  css  js  c++  java
  • AlarmReceiver 与IntentService的使用

    1:GetSmsService.java

    public class GetSmsService extends IntentService{
        private AlarmManager alarmManager = null;
        private PendingIntent alarmIntent = null;
        
        public GetSmsService(){
            super("WtacService");
        }
        
        public GetSmsService(String name) {
            super(name);
        }
    
        @Override
        public IBinder onBind(Intent arg0) {
            return null;
        }
        
        @Override
        public void onCreate() {
            super.onCreate();
            alarmManager = (AlarmManager)this.getSystemService(Context.ALARM_SERVICE);
            String ALARM_ACTION = "com.wzh.receiver.ACTION_WTAC_ALAEM";
            Intent intentTo = new Intent(ALARM_ACTION);
            alarmIntent = PendingIntent.getBroadcast(this, 0, intentTo, 0);
        }
        
        @Override
        protected void onHandleIntent(Intent intent) {
            final Context context = this.getApplicationContext();
            
            int alarmType = AlarmManager.ELAPSED_REALTIME_WAKEUP;
            long triggerAtMillis = SystemClock.elapsedRealtime()+(5*1000);
            long intervalMillis = 5*1000;    //间隔时间
            alarmManager.setInexactRepeating(alarmType, triggerAtMillis, intervalMillis, alarmIntent);
            if(PhoneInfo.isConnectInternet(context)){
                System.out.println("从服务器获取数据:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
                try {
                    Thread.sleep(2*1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("进行短信发送:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
            }
        }
    
    }

    2:GetSmsAlarmReceiver.java

    public class GetSmsAlarmReceiver extends BroadcastReceiver{
    
        @Override
        public void onReceive(Context context, Intent intent) {
            Intent startIntent = new Intent(context, GetSmsService.class);
            context.startService(startIntent);
        }
    
    }

    3:MainActivity.java

    public class MainActivity extends Activity {
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            
        }
            
    }

    4:AndroidManifest.xml

    <receiver
                android:name="com.wzh.service.GetSmsAlarmReceiver"
                android:enabled="true"
                android:exported="false" >
                <intent-filter>
                    <action android:name="com.wzh.receiver.ACTION_WTAC_ALAEM" />
                </intent-filter>
            </receiver>
    
            <service
                android:name="com.wzh.service.GetSmsService"
                android:enabled="true"
                android:exported="false" />
  • 相关阅读:
    如何在Ubuntu 18.04上安装Memcached
    ubuntu安装mysql添加密码
    Django学习---快速搭建搜索引擎(haystack + whoosh + jieba)
    django3.x 使用haystack 报错:ImportError: cannot import name 'six' from 'django.utils'
    spring boot2之Jackson和ObjectMapper
    python之装饰器强制函数上的类型检查
    python之*args和**kwargs的区别
    Python之@property
    python基础语法之and,or,not
    小案例
  • 原文地址:https://www.cnblogs.com/yshyee/p/3644974.html
Copyright © 2011-2022 走看看