2012-06-14 122 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);