Alarm Manager を使用してサービスを開始しようとしています。私はすべてを試しましたが、起動しません。アクティビティのボタン リスナーから以下のコードを呼び出しています。
private void setAlarmManager(String interval) throws NumberFormatException, IOException
{
AlarmManager service = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(getApplicationContext(), MyService.class);
PendingIntent pending = PendingIntent.getBroadcast(getApplicationContext(),
0,
i,
PendingIntent.FLAG_CANCEL_CURRENT);
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MINUTE, Integer.valueOf(interval));
service.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
(Integer.valueOf(interval) * 60000), pending);
}
そして私のマニフェストは次のようになります:
<service android:enabled="true" android:name="com.pack.android.service.MyService"
/>
ユーザーが指定した時間 (分単位) に従ってサービスを開始しようとしています。しかし、私のサービスは呼び出されません。
次のコードを使用してサービスを呼び出すと、機能します。私のプロジェクトのターゲット バージョンは 16 です。
getApplicationContext().startService(i);