Android Service实现闹钟
2016-06-01 21:49
567 查看
1.MainActivity.class中开启服务
2.LongRunningService.class中获取闹钟服务,并定时10s,然后启动AlarmActivity.class
3.AlarmActivity.class中实例化一个对话框,并播放音乐
实现效果,如下图所示。
import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent intent = new Intent(this, LongRunningService.class); startService(intent); } }
2.LongRunningService.class中获取闹钟服务,并定时10s,然后启动AlarmActivity.class
import android.app.AlarmManager; import android.app.PendingIntent; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.os.SystemClock; import android.util.Log; import java.util.Date; /** * Created by admin on 16-5-31. */ public class LongRunningService extends Service{ @Override public IBinder onBind(Intent intent) { return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { new Thread(new Runnable() { @Override public void run() { Log.i("LongRunningService", "executed at " + new Date().toString()); } }).start(); AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE); int anHour = 10 * 1000; long triggerAtTime = SystemClock.elapsedRealtime() + anHour; Intent i = new Intent(this, AlarmActivity.class); PendingIntent pi = PendingIntent.getActivity(this, 0, i, 0); manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pi);//1min后返回执行 return super.onStartCommand(intent, flags, startId); } }
3.AlarmActivity.class中实例化一个对话框,并播放音乐
import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.media.MediaPlayer; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class AlarmActivity extends Activity { MediaPlayer mAlarmMusic; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mAlarmMusic = MediaPlayer.create(this,R.raw.alarm); mAlarmMusic.setLooping(true); mAlarmMusic.start(); new AlertDialog.Builder(AlarmActivity.this).setTitle("Alarm !!!") .setMessage("Time Out,GO!") .setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { mAlarmMusic.stop(); AlarmActivity.this.finish(); } }).show(); } }
实现效果,如下图所示。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析