Android - AlarmManager

Android - AlarmManager 首页 / Android入门教程 / Android - AlarmManager

在Android中 Android AlarmManager 在Android的帮助下,您可以在将来的特定时间安排您的应用程序运行。

Android AlarmManager拥有一个CPU唤醒锁,可确保在处理广播之前不让手机进入睡眠状态。

Android AlarmManager示例

让无涯教程看一下一个简单的AlermManager示例,它在用户提供的特定时间后运行。

无涯教程网

您需要仅拖动EditText和按钮,如下所述。

File: activity_main.xml
<!--?xml version="1.0" encoding="utf-8"?-->
<relativelayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="example.learnfk.com.alarmmanager.MainActivity">
    <button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Start" android:layout_alignparentbottom="true" android:layout_centerhorizontal="true" android:layout_marginbottom="103dp"></button>
    <edittext android:id="@+id/time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparenttop="true" android:layout_centerhorizontal="true" android:layout_margintop="22dp" android:ems="10"></edittext>
</relativelayout>

当用户单击按钮时,Activity类启动警报服务。

链接:https://www.learnfk.comhttps://www.learnfk.com/android/android-alarmmanager.html

来源:LearnFk无涯教程网

File: MainActivity.java
package example.learnfk.com.alarmmanager;

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    Button start;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        start= findViewById(R.id.button);

        start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startAlert();
            }
        });
    }

    public void startAlert(){
        EditText text = findViewById(R.id.time);
        int i = Integer.parseInt(text.getText().toString());
        Intent intent = new Intent(this, MyBroadcastReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(
                this.getApplicationContext(), 234324243, intent, 0);
        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()
                + (i * 1000), pendingIntent);
        Toast.makeText(this, "Alarm set in " + i + " seconds",Toast.LENGTH_LONG).show();
    }
}

让无涯教程创建开始警报的BroadcastReceiver类。

File: MyBroadcastReceiver.java
package example.learnfk.com.alarmmanager;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.widget.Toast;

public class MyBroadcastReceiver extends BroadcastReceiver {
    MediaPlayer mp;
    @Override
    public void onReceive(Context context, Intent intent) {
        mp=MediaPlayer.create(context, R.raw.alarm);
        mp.start();
        Toast.makeText(context, "Alarm....", Toast.LENGTH_LONG).show();
    }
}
File: AndroidManifest.xml

您需要在androidmanifest.xml文件中提供一个接收器条目。

<receiver android:name="MyBroadcastReceiver" >  
</receiver>  

让无涯教程看看androidmanifest.xml文件的完整代码。

<!--?xml version="1.0" encoding="utf-8"?-->
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android" package="example.learnfk.com.alarmmanager">
    <application android:allowbackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundicon="@mipmap/ic_launcher_round" android:supportsrtl="true" android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"></action>
                <category android:name="android.intent.category.LAUNCHER"></category>
            </intent-filter>
        </activity>
        <receiver android:name="MyBroadcastReceiver"></receiver>
    </application>
</manifest>

输出:

android alarmmanager example output 1android alarmmanager example output 1android alarmmanager example output 1

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

Linux实战技能100讲 -〔尹会生〕

从0打造音视频直播系统 -〔李超〕

移动端自动化测试实战 -〔思寒〕

性能测试实战30讲 -〔高楼〕

分布式数据库30讲 -〔王磊〕

打造爆款短视频 -〔周维〕

说透元宇宙 -〔方军〕

快手 · 音视频技术入门课 -〔刘歧〕

零基础学Python(2023版) -〔尹会生〕

好记忆不如烂笔头。留下您的足迹吧 :)