Android AlarmManager含代碼

Android AlarmManager

Android AlarmManager允許您訪問系統鬧鐘。愛掏網 - it200.com

通過Android AlarmManager,您可以在將來的某個特定時間安排應用程序運行,無論您的手機是否正在運行。愛掏網 - it200.com

Android AlarmManager持有一個CPU喚醒鎖,確保不會使手機休眠,直到廣播被處理。愛掏網 - it200.com

讓我們看一個簡單的AlarmManager示例,根據用戶提供的特定時間運行。愛掏網 - it200.com

activity_main.xml

您只需要按照以下方式拖動一個edittext和一個按鈕。愛掏網 - it200.com

<?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.javatpoint.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" />  

    <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" />  
</RelativeLayout>  

Activity類

當用戶點擊按鈕時,Activity類啟動了警報服務。愛掏網 - it200.com

package example.javatpoint.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類來啟動鬧鐘。愛掏網 - it200.com

package example.javatpoint.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();
    }
}

您需要在AndroidManifest.xml文件中提供一個接收器條目。愛掏網 - it200.com

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

讓我們來看一下AndroidManifest.xml文件的全部代碼。愛掏網 - it200.com

<?xml version="1.0" encoding="utf-8"?>  
<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
    package="example.javatpoint.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" />  

                <category android:name="android.intent.category.LAUNCHER" />  
            </intent-filter>  
        </activity>  
        <receiver android:name="MyBroadcastReceiver" >  
        </receiver>  
    </application>  

</manifest>  

輸出:

聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論0 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 国产色视频在线| 国产乱子伦一级毛片| 欧美日韩精品久久久免费观看| 久久久精品2019免费观看| 国产精品免费看香蕉| 波多野结衣xfplay在线观看| 久久er99热精品一区二区| 国产又污又爽又色的网站| 最新版天堂中文在线官网| 18到20女人一级毛片| 亚洲国产精品久久久久秋霞影院 | 福利视频一区二区三区| 中文字幕一区二区三区有限公司| 国产成人精品一区二区三在线观看| 欧美日本一本线在线观看| japanese日本护士xxxx18一19| 免费AV一区二区三区无码| 女的和男的一起怼怼| 特黄特黄一级高清免费大片| aaa日本高清在线播放免费观看| 偷拍激情视频一区二区三区| 天堂网www中文在线| 欧美精品色视频| 欧美videos极品| 久久精品国产只有精品2020| 国产乱了真实在线观看| 成年免费视频黄网站在线观看| 精品午夜一区二区三区在线观看| a级片免费电影| 亚洲va久久久噜噜噜久久狠狠| 国产乱码一区二区三区四| 好大好湿好硬顶到了好爽视频| 欧美日韩大片在线观看| 麻豆视频免费观看| 一级黄色免费毛片| 亚洲国产成人超福利久久精品| 国产免费播放一区二区| 天堂资源wwww在线看| 最新版资源在线天堂| 琪琪色原网站在线观看| 国产精品吹潮香蕉在线观看|