zoukankan      html  css  js  c++  java
  • Broadcast和Servixe定时提醒

    package com.example.administrator.mytestapp.BroadcastDemo;
    
    import android.app.AlarmManager;
    import android.app.PendingIntent;
    import android.content.Intent;
    import android.icu.util.Calendar;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
            import android.view.View;
            import android.widget.Button;
    import android.widget.Toast;
    
    import com.example.administrator.mytestapp.R;
    
    public class TimeAlarmActivity extends AppCompatActivity {
        private Button BtnStartTimerAlarm,BtnExit;
      private static TimeAlarmActivity App;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_time_alarm);
            BtnStartTimerAlarm= (Button) findViewById(R.id.BtnStartTimerAlarm);
            BtnExit= (Button) findViewById(R.id.BtnExit);
            BtnStartTimerAlarm.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(TimeAlarmActivity.this, "等待...闹钟倒计时为3秒", Toast.LENGTH_SHORT).show();
                    Intent intent=new Intent("android.intent.action.EDIT" );
                    PendingIntent pi=PendingIntent.getBroadcast(TimeAlarmActivity.this,0,intent,0);
                    java.util.Calendar c= java.util.Calendar.getInstance();
                    c.add(java.util.Calendar.SECOND,3);
                    AlarmManager am= (AlarmManager) getSystemService(ALARM_SERVICE);
                    am.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pi);
                }
            });
            BtnExit.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent=new Intent(TimeAlarmActivity.this,TimerAlarmReceiver.class);
                    PendingIntent pi=PendingIntent.getBroadcast(TimeAlarmActivity.this,0,intent,0);
                    AlarmManager am= (AlarmManager) getSystemService(ALARM_SERVICE);
                    am.cancel(pi);
                    finish();
    
                }
            });
        }
        public static TimeAlarmActivity getApp()
        {
            return App;
        }
    //
    }
    package com.example.administrator.mytestapp.BroadcastDemo;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.util.Log;
    
    public class TimerAlarmReceiver extends BroadcastReceiver {
        public TimerAlarmReceiver() {
            Log.e("TAG","Receiver被实例化");
        }
    
        @Override
        public void onReceive(Context context, Intent intent) {
           context.startService(new Intent(context,TimerAlarmService.class));
            context.stopService(new Intent(context,TimerAlarmService.class));
        }
    }
    package com.example.administrator.mytestapp.BroadcastDemo;
    
    import android.app.Service;
    import android.content.Intent;
    import android.os.IBinder;
    import android.util.Log;
    import android.widget.Toast;
    
    public class TimerAlarmService extends Service {
        public TimerAlarmService() {
            Log.e("TAG","Service被实例化");
        }
    
        @Override
        public IBinder onBind(Intent intent) {
           return null;
        }
    
        @Override
        public void onCreate() {
            TimeAlarmActivity app=TimeAlarmActivity.getApp();
           // app.setTitle("来自于定时闹钟服务");
            Log.e("TAG","开启闹钟提醒");
            Toast.makeText(this, "定时闹钟提醒", Toast.LENGTH_LONG).show();
            super.onCreate();
        }
    
        @Override
        public void onDestroy() {
            String AppName="TimerAlarm";
            TimeAlarmActivity app=TimeAlarmActivity.getApp();
            //app.setTitle(AppName);
            super.onDestroy();
        }
    }
       <activity android:name=".BroadcastDemo.TimeAlarmActivity" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    
            <receiver
                android:name=".BroadcastDemo.TimerAlarmReceiver"
                android:enabled="true"
                android:exported="true" >
                <intent-filter>
                    <action android:name="android.intent.action.EDIT" />
                </intent-filter>
                </receiver>
    
            <service
                android:name=".BroadcastDemo.TimerAlarmService"
                android:enabled="true"
                android:exported="true"></service>
        </application>
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="com.example.administrator.mytestapp.BroadcastDemo.TimeAlarmActivity">
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/BtnStartTimerAlarm"
            android:text="开启定时闹钟服务"/>
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/BtnExit"
            android:text="退出"/>
    
    
    </LinearLayout>

  • 相关阅读:
    bzoj1208 宠物收养所treap/splay/set
    Angular 下的 function
    argunlar 1.0.1 【数据绑定】
    argunlar 1.0.0 【hello,world】
    JavaScript编写风格指南 (三)
    JavaScript编写风格指南 (二)
    JavaScript编写风格指南 (一)
    AngularJS开发指南:表达式
    HTML5 移动开发(移动设备检测及对HTML5的支持)
    HTML5 移动开发(CSS3设计移动页面样式)
  • 原文地址:https://www.cnblogs.com/jiang2538406936/p/5846270.html
Copyright © 2011-2022 走看看