Android Service实现闹钟

1.MainActivity.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();
    }
}

实现效果,如下图所示。

            


  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的 Android Studio 实现闹钟功能的代码示例: 1. 创建一个新的 Android 项目并在布局文件中添加一个 Button 和一个 TextView,用于设置闹钟的时间和显示闹钟状态。 2. 在 MainActivity.java 中添加以下代码: ```java public class MainActivity extends AppCompatActivity { private TextView mTextView; private Button mButton; private AlarmManager mAlarmManager; private PendingIntent mPendingIntent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView = findViewById(R.id.text_view); mButton = findViewById(R.id.button); mAlarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); Intent intent = new Intent(MainActivity.this, AlarmReceiver.class); mPendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); // 设置闹钟时间为当前时间 + 10 秒 calendar.add(Calendar.SECOND, 10); // 设置闹钟 mAlarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), mPendingIntent); // 更新界面 mTextView.setText("闹钟已设置"); } }); } } ``` 3. 创建一个 AlarmReceiver 类用于接收闹钟广播并处理闹钟事件: ```java public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 处理闹钟事件 Toast.makeText(context, "闹钟响了!", Toast.LENGTH_LONG).show(); } } ``` 4. 在 AndroidManifest.xml 文件中添加以下代码: ```xml <uses-permission android:name="android.permission.SET_ALARM" /> <application> <receiver android:name=".AlarmReceiver" /> </application> ``` 5. 运行应用程序,点击按钮设置闹钟,10 秒后应该会收到一个 Toast 提示,表示闹钟已经响了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值