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>

posted @ 2016-09-06 16:32  什么玩楞啊,我叫旺仔  阅读(356)  评论(0)    收藏  举报