2013-04-22 109 views
1

报警意图不起作用如果没有人来电,一切都很好。如果我使用Opera或Gmail或其他应用程序,则可以。并及时启动目标警报意图。如果有人拨打电话

Intent i2 = new Intent(); 
i2.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
pIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, i2, 0); 

curtimeset = System.currentTimeMillis(); 
am = (AlarmManager) getSystemService(ALARM_SERVICE); 
am.set(AlarmManager.RTC_WAKEUP, curtimeset + full, pIntent); //full time in mills when alarm will be on even from lock mode 

当计时器开始和curr时间是相等的目标时间。应用开始意图。从前台加载它。

public void instanceinitiale() { 
    Intent resumeIntent = new Intent(getApplicationContext(), Main.class); 
    resumeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP 
      | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
    startActivity(resumeIntent); 

} 

如何加载我的闹钟尽管任何情况呢?)

回答

0

当它是时间报警,系统会调用您的应用程序。同样的意图(您在创建闹钟时使用)将通过系统发送给您。如果你把你的数据创建的同时,你可以得到它

public class AlarmService extends BroadcastReceiver { 

private final static String action="android.intent.action.ALARMHANDLERACTIVITY"; 
public AlarmService(){ 
} 

@Override 
public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    if(intent.getAction().compareTo(action)==0){ 
     context.startActivity(intent); 
    } 
} 




public void createAlarm(){ 
    Intent intent=new Intent("android.intent.action.ALARMHANDLERACTIVITY"); 
    intent.putExtra("eventID", Integer.valueOf(id)); 

    PendingIntent pendingIntent=PendingIntent.getActivity(context, 0, intent,0); 
    AlarmManager aManager=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 


    aManager.set(AlarmManager.RTC_WAKEUP, temp.getStartDate().getTimeInMillis(), pendingIntent); 
} 

} 

来定义你的接收器WIRTE这清单的应用程序块:

<receiver android:name=".alarmService.AlarmService"> 
     <intent-filter android:priority="200"> 
      <action android:name="android.intent.action.BOOT_COMPLETED"/> 
     </intent-filter> 
    </receiver> 
+0

THX你!我认为我适应我的需要) – Druidman 2013-04-25 02:08:15

+0

如果它的工作,请考虑接受答案,以帮助他人 – bmavus 2013-04-27 14:08:09