1
我是新來android編程和我搜索了許多這個相同的問題的例子,但無法找到解決方案。我正在製作一個鬧鐘應用程序,我想測試AlarmManager Class來安排一個事件,讓我在應用程序關閉時執行一個事件,而不是正常的操作系統鬧鐘我自己的自定義鬧鐘,這就是爲什麼我不使用AlarmClock類。由於某種原因,我的類中擴展BroadcastReciever的OnRecieve()方法永遠不會被調用?我希望你們能幫忙。此外,如果有更好的技術來實現預定的插入,我會很高興知道,像你一樣輸入id。還要注意我試圖把reciever標籤這樣AlarmManager BroadcastReciever,onRecieve從未呼籲
<receiver android:name=".MyReciever"></receiver>
在應用程序標籤之間在我的清單,但我得到相同的結果,還我知道,我在我的類定義拼寫錯誤Reciever,但我一直在一致的整個項目。
這裏是我的maifest文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="Alarm_clock_app.Alarm_clock_app" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">
<uses-sdk android:minSdkVersion="16" />
<application android:label="Alarm_clock_app">
<activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent" />
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
<uses-permission android:name="android.permission.VIBRATE" />
</manifest>
這是我在裏面的onCreate()主要活動調用該方法,這個方法是我的主要活動課裏面
public void sched()
{
Intent intent = new Intent(this,typeof(MyReciever));//create an intent with our custom broadcast reciever
PendingIntent pIntent = PendingIntent.GetService(this,0,intent,PendingIntentFlags.UpdateCurrent);//get a pending intent made from our intent
AlarmManager alarM = (AlarmManager) GetSystemService(AlarmService);//get alarm manager
alarM.Set(AlarmType.RtcWakeup, DateTime.Now.Millisecond + 5 * 1000, pIntent);//schedule the alarm for 5,000 ms from now
}
這是我的班擴展廣播接收器
[BroadcastReceiver(Enabled = true, Process = ":remote")]
class MyReciever: BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
Console.WriteLine("alarm has occuered");
}
}
您使用的是'PendingIntent.GetService()'方法,它是用來啓動一個'Service'。如果您想要廣播到「BroadcastReceiver」,請改用PendingIntent.GetBroadcast()方法。 (順便說一句,如果你編輯你的問題,它會碰到活動隊列的頂部,你不需要爲同樣的事情發佈另一個問題,尤其是沒有鏈接到前一個問題的問題。) –
謝謝,但這個沒有解決問題 – calcMan
好的,當你編輯你的問題時,確保它是值得的。不要只是改變一個字母,讓它碰撞。將代碼更新爲當前正在運行的內容,添加您正在觀察的任何新行爲,鏈接到您嘗試實現的任何其他帖子或示例等等。如果編輯至少修復了您的語法,標點符號和拼寫它再次。 –