私のアプリケーションでは、アラームマネージャを使用してサービスを開始しようとしています。私がボタンをクリックしているとき、私が与えている特定の時間にサービスを開始する必要があります。 アラームマネージャのための私のコードは以下のとおりである:Androidでアラームマネージャを使用してサービスを開始するには?
public void onClick(View view)
{
if(view == m_btnActivate)
{
Calendar cur_cal = Calendar.getInstance();
cur_cal.setTimeInMillis(System.currentTimeMillis());
cur_cal.add(Calendar.SECOND, 50);
Log.d("Testing", "Calender Set time:"+cur_cal.getTime());
Intent intent = new Intent(DashboardScreen.this, ServiceClass.class);
Log.d("Testing", "Intent created");
PendingIntent pi = PendingIntent.getService(DashboardScreen.this, 0, intent, 0);
AlarmManager alarm_manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarm_manager.set(AlarmManager.RTC, cur_cal.getTimeInMillis(), pi);
Log.d("Testing", "alarm manager set");
Toast.makeText(this, "ServiceClass.onCreate()", Toast.LENGTH_LONG).show();
}
}
そして、ベローズは私のサービスクラスである:
public class ServiceClass extends Service{
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
Log.d("Testing", "Service got created");
Toast.makeText(this, "ServiceClass.onCreate()", Toast.LENGTH_LONG).show();
}
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
Toast.makeText(this, "ServiceClass.onStart()", Toast.LENGTH_LONG).show();
Log.d("Testing", "Service got started");
}
}
サービスは、サービスクラスのログメッセージを印刷する必要があります開始されます。しかし、それは表示されていません。誰も助けることができますか?
名前は記載しましたが、Android:enabled = "true"ではありません。 –
alarmManager.cancel(pintent)を使用してください。アラームマネージャをキャンセルします。 – user370305
デフォルトでは 'Android:enabled'は' true'です – Tautvydas