2012-06-14 123 views
3

我正在做一個鬧鐘應用程序,我用在互聯網上找到的例子的代碼,但它不起作用,我不知道爲什麼。Android鬧鐘不起作用

這裏是我的AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="iiriondo.activity" 
    android:versionCode="1" 
    android:versionName="1.0"> 

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".LoginActivity" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <receiver android:name=".OnAlarmReceiver" ></receiver> 

</application> 
</manifest> 

這裏的類聽報警:

public class OnAlarmReceiver extends BroadcastReceiver{ 

private static int NOTIFICATION_ID = 1; 

@Override 
public void onReceive(Context context, Intent intent) { 

    Toast.makeText(context, "La Alarma está sonando",Toast.LENGTH_LONG).show(); 

} 

} 

最後,我用這個代碼設置報警:

Intent intent = new Intent(getApplicationContext(),OnAlarmReceiver.class); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 1); 
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+ (5 * 1000), pendingIntent); 
+1

「但它不工作」唯一的事情是不是非常多。你想達到什麼目的,你會得到哪個錯誤?什麼告訴你你的調試器? –

+0

看到這個答案http://stackoverflow.com/questions/8999103/isuues-alarm-manager-in-every-1-min-android/8999344#8999344 – Ajay

回答

1

你的代碼是完全正常的。

你要確保你的java文件位於同一封裝package="iiriondo.activity"

+0

哎唷!你是對的。問題在於類OnAlarmReceiver位於其他包中。謝謝。 – mai87

0

寫下面意圖代碼而不是你的意圖代碼。

Intent intent = new Intent(MainActivity.this, OnAlarmReceiver.class); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 192837, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
alarmManager.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis() + (5 * 1000),pendingIntent); 
+0

告訴我,上面的代碼是爲我工作有什麼問題。 –

0

可以傳遞到通過嘗試 「這個」 instaed的getApplicationContext()的

new Intent(this,OnAlarmReceiver.class);