国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

簡易的自定義鬧鐘

2019-11-08 02:47:10
字體:
來源:轉載
供稿:網友

相信大家都有早上起不來的時候,是否想過自己做一個關不掉的鬧鐘呢?當然自己做的  自己可以關,也可以有不能關的

其實做一個鬧鐘并不難,首先要得到鬧鐘管理器AlarmManager  然后就是設置鬧鐘的時間了,

當你點擊設置的時候要獲取系統當前的時間

Calendar calendar=Calendar.getInstance();                int hour=calendar.get(Calendar.HOUR_OF_DAY);                int minute=calendar.get(Calendar.MINUTE);然后要彈出時間對話框TimePickerDialog,再設置鬧鐘的時間,時間一到,發送廣播(鬧鐘響了),廣播接受者中跳轉Activity,然后再那個Activity中播放音樂

另外還可以添加通知管理器NotifitionManager在通知欄可以顯示消息

大致思路就是這樣接下來就看代碼吧

主要布局MainActivity

 <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="設置鬧鐘(一次)"        android:id="@+id/setAlarm"        />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="設置鬧鐘(周期)"        android:id="@+id/setAlarmCycle"        />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="取消周期"        android:id="@+id/cancelCycle"        />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="發送通知"        android:id="@+id/sendNotification"        />MainActivity的主要代碼
public class MainActivity extends AppCompatActivity {    PRivate AlarmManager alarmManager;    private PendingIntent pendingIntent;    private Button setAlarm;    private Button setAlarmCycle;    private Button cancelCycle;    private Button sendNotification;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //獲取鬧鐘管理者        alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);        setAlarm = (Button) findViewById(R.id.setAlarm);        setAlarmCycle = (Button) findViewById(R.id.setAlarmCycle);        cancelCycle = (Button) findViewById(R.id.cancelCycle);        sendNotification = (Button) findViewById(R.id.sendNotification);        setAlarm.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                //獲取當前系統的時間                Calendar calendar=Calendar.getInstance();                int hour=calendar.get(Calendar.HOUR_OF_DAY);                int minute=calendar.get(Calendar.MINUTE);                //彈出時間對話框                TimePickerDialog timePickerDialog=new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {                    @Override                    public void onTimeSet(TimePicker timePicker, int i, int i1) {                        Calendar c=Calendar.getInstance();                        c.set(Calendar.HOUR_OF_DAY,i);                        c.set(Calendar.MINUTE,i1);                        Intent intent=new Intent();                        intent.setAction("com.zking.g150820_android28_alarm_notification.RING");                        //將來時態的跳轉  ang eng ing ong                        PendingIntent pendingIntent=PendingIntent.getBroadcast(MainActivity.this,0x101,intent,0);                        //設置鬧鐘                        alarmManager.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pendingIntent);                        //時間一到,發送廣播(鬧鐘響了)                        //廣播接受者中(跳轉Activity)                        // 跳轉Activity,在這個Activity中播放音樂                    }                },hour,minute,true);                timePickerDialog.show();            }        });        setAlarmCycle.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                //獲取當前系統的時間                Calendar calendar=Calendar.getInstance();                int hour=calendar.get(Calendar.HOUR_OF_DAY);                int minute=calendar.get(Calendar.MINUTE);                //彈出時間對話框                TimePickerDialog timePickerDialog=new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {                    @Override                    public void onTimeSet(TimePicker timePicker, int i, int i1) {                        Calendar c=Calendar.getInstance();                        c.set(Calendar.HOUR_OF_DAY,i);                        c.set(Calendar.MINUTE,i1);                        Intent intent=new Intent();                        intent.setAction("com.zking.g150820_android28_alarm_notification.RING");                        //將來時態的跳轉  ang eng ing ong                        pendingIntent = PendingIntent.getBroadcast(MainActivity.this,0x101,intent,0);                        //設置鬧鐘//                alarmManager.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pendingIntent);                        //設置周期鬧鐘                        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),5000, pendingIntent);                        //時間一到,發送廣播(鬧鐘響了)                        //廣播接受者中(跳轉Activity)                        // 跳轉Activity,在這個Activity中播放音樂                    }                },hour,minute,true);                timePickerDialog.show();            }        });        cancelCycle.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                alarmManager.cancel(pendingIntent);            }        });        sendNotification.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                //實例化通知管理器                NotificationManager notificationManager= (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);                //實例化通知                NotificationCompat.Builder builder=new NotificationCompat.Builder(MainActivity.this);                builder.setContentTitle("溫馨提示");                builder.setContentText("天氣轉變大注意適當增減衣服");                builder.setDefaults(NotificationCompat.DEFAULT_ALL);                builder.setAutoCancel(true);                builder.setSmallIcon(android.R.drawable.ic_media_play);                builder.setContentIntent(PendingIntent.getActivity(MainActivity.this,0x102,new Intent(MainActivity.this,RingActivity.class),0));                Notification notification=builder.build();                //發送通知                notificationManager.notify(0x101,notification);            }        });    }}響鈴時的布局文件

<TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="懶pig,該起床了!!!"        android:textSize="30sp"        />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="停止"        android:id="@+id/stop"        />

廣播接受者的代碼

public class RingReceived extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        if("com.zking.g150820_android28_alarm_notification.RING".equals(intent.getAction())){            Log.i("test","鬧鐘響了");            //跳轉到Activity            Intent intent1=new Intent(context,RingActivity.class);            //給Intent設置標志位            intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            context.startActivity(intent1);        }    }}響鈴的Activity
public class RingActivity extends AppCompatActivity {    private MediaPlayer mediaPlayer;    private Button stop;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_ring);        stop = (Button) findViewById(R.id.stop);        stop.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                mediaPlayer.stop();                finish();            }        });        mediaPlayer = MediaPlayer.create(this, R.raw.love);        mediaPlayer.start();    }}

既然有 清單文件別忘了配置哦

	<activity android:name=".MainActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <activity android:name=".RingActivity"></activity>            <receiver android:name=".RingReceived">                <intent-filter>                    <action android:name="com.example.clerknaozhong.RING"></action>                </intent-filter>            </receiver>

那么這樣一個簡單的鬧鐘就完成了


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泊头市| 通河县| 长乐市| 阿合奇县| 平远县| 拉孜县| 盐山县| 北安市| 苗栗市| 南雄市| 正蓝旗| 大渡口区| 土默特右旗| 天镇县| 定陶县| 长海县| 馆陶县| 湾仔区| 葵青区| 维西| 墨脱县| 宁南县| 黄平县| 抚松县| 自治县| 三台县| 商丘市| 美姑县| 尉犁县| 金秀| 青浦区| 双城市| 孙吴县| 饶河县| 浑源县| 赤水市| 孝义市| 马关县| 仙居县| 栾川县| 东兰县|