1

私のコードでは、アラーム マネージャーが機能していません。アプリケーションの残りの部分は正常に機能しています。私のコードを参照してください。

   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);

そして私のアンドロイド 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>

なぜ機能しないのですか??

4

3 に答える 3

3

答えが得られました。次の変更を加えました。

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);
于 2011-12-08T04:57:24.467 に答える
2

放送受信機を一般ではなく別のパッケージに入れていたことがわかるまで、同じ問題が発生しました。

単純に変更:

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

にとって:

<receiver android:name="com.MyCompany.MyPackage.AndroidAlarmService" android:enabled="true" >
于 2013-01-30T21:10:32.410 に答える
-1

変更してみましたか

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

6000を別のものに変更してみましたか?他のすべてが正しいようです。

編集:

マニフェストに Read_phone_state 権限があることを確認してください。

于 2011-12-07T12:18:44.720 に答える