2011-12-07 132 views
1

在我的代碼報警管理器不工作。我的應用程序的恢復工作正常。請參閱我的代碼。android: - 報警管理器不工作

Intent myIntent = new Intent(getApplicationContext(), AndroidAlarmService.class); 
    myIntent.putExtra("class", "home"); 
    PendingIntent pendingIntent = PendingIntent.getService(this, 0,myIntent, 0); 
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),6000,pendingIntent); 

和我的Android AlarmService類: -

public class AndroidAlarmService extends BroadcastReceiver implements URLs{ 
public void onReceive(Context context, Intent intent) { 

    // TODO Auto-generated method stub 
    System.out.println("BroadCast\n"); 
    String name=intent.getStringExtra("class"); 
    if(name.equals("home")){ 

    Intent homeIn=new Intent(context,Home.class); 
    context.startActivity(homeIn); 
    } 

} 
} 

清單中我已經這樣做了;

<receiver android:name=".AndroidAlarmService" android:enabled="true" > 
     <intent-filter> 
      <action android:name="android.intent.action.PHONE_STATE"></action> 
     </intent-filter> 
</receiver> 

爲什麼它不工作?

+1

你在你的清單XML添加權限。它需要READ_PHONE_STATE權限。 –

+0

是在應用程序標籤上方... – freshDroid

+0

它不應該在應用程序標籤上方,而是封裝在標籤中....類似於<應用程序..... <接收方將您的數據放在此處>' – THelper

回答

3

我得到了answer.I作出以下改動:

Intent myIntent = new Intent(getApplicationContext(), AndroidAlarmService.class); 
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,myIntent, 0); 

在我AndroidAlarmService類:

Intent homeIn=new Intent(context,Home.class); 
homeIn.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(homeIn); 
+0

上方有效,但是您可以在強制停止應用程序後告訴我它不工作,因此您可以找到任何解決方案 – PankajAndroid

-1

你有沒有試圖改變

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),6000,pendingIntent); 

你有沒有試圖改變6000到別的東西?好像你有其他一切正確。

編輯:

確保您有READ_PHONE_STATE許可,您的清單。

+0

這是6000的問題嗎?這是否意味着6秒? – freshDroid

+0

看看我的編輯。 –

+0

yes.i在應用程序標籤 – freshDroid

1

我有同樣的問題,直到我發現,我已經把我的廣播接收器上不同的包,不一般。

只是改變:

<receiver android:name=".AndroidAlarmService" android:enabled="true" > 

爲:

<receiver android:name="com.MyCompany.MyPackage.AndroidAlarmService" android:enabled="true" >