標籤:
這一次的任務是兩個人合作設計一個簡單的APP,其中設計到了原始碼的設計,原始碼的實現以及原始碼的控制。在設計app前,我們先仔細研究了軟體是如何設計與實現的,然後我們決定做個簡單的app—提醒小鬧鐘。在設計的過程中,問題很多,因為從未設計過app,開始完全不知道如何去設計代碼,我們兩個商量了下,在百度找到了教程,跟著教程一步一步研究如何設計一個app。我們覺得做一個提醒小鬧鐘app,其功能是使用者設定好時間與事項後,該app就會在使用者設定的時間響起,然後顯示使用者之前輸入的事項。
代碼我們參考了一些資料和別人設計的代碼,最後核心代碼如下
package com.example.alarmtest;
import java.util.Calendar;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.app.TimePickerDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TimePicker;
import android.widget.Toast;
public class MainActivity extends Activity {
Button button;
AlarmManager alarmManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button1);
//擷取AlarmManager對象
alarmManager = (AlarmManager) getSystemService(Service.ALARM_SERVICE);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Calendar currentTime = Calendar.getInstance();
//建立一個TimePickerDialog執行個體,並顯示
new TimePickerDialog(MainActivity.this, 0,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
//指定啟動AlarmActivity組件
Intent intent = new Intent(MainActivity.this, AlarmActivity.class);
//建立PendingIntent對象
/*
* PendingIntent與Intent的區別是PendingIntent處理即將發生的事情
* 比如:在通知欄Notification中跳轉頁面,不是立即跳轉
* 通常通過 getActivity、getBroadcast、getService得到PendingIntent的執行個體
*
*/
PendingIntent pi = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
c.set(Calendar.HOUR, hourOfDay);
c.set(Calendar.MINUTE, minute);
alarmManager.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pi);
Toast.makeText(MainActivity.this, "設定鬧鐘成功", Toast.LENGTH_SHORT).show();
}
}, currentTime.get(Calendar.HOUR_OF_DAY), currentTime.get(Calendar.MINUTE), false).show();
}
});
}
}
ios APP開發簡單一實例