2015-05-11 4 views
1

Я новичок в разработке Android и был бы очень признателен, если бы кто-нибудь мог объяснить мне отношения между Службой, диспетчером аварийных сигналов и широковещательным приемником с некоторым примером кода. Я работаю над Android-приложением, где мне нужно выполнить определенную часть кода каждые 10 минут. Кроме того, я хочу убедиться, что мое приложение не будет убито ОС Android, и если оно будет убито по какой-то причине, например, если телефон работает на низком уровне, то мое приложение должно начать снова (конечно, с того же места, где пользователь оставлен). Кроме того, при перезапуске телефона приложение должно запускаться снова.Связь между службами, диспетчером аварийных сигналов и широковещательным приемником

Любая помощь будет высоко оценена. Спасибо.

+0

Посмотрите здесь http://stackoverflow.com/questions/4459058/alarm-manager-example –

+1

Большое спасибо за столь необходимую помощь :-). – User11012

ответ

0

Вот полный код Для установки будильника

public class Alarmset extends Activity implements OnClickListener{ 
Button set; 
TimePicker timepicker; 


@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_alarmset); 
     set=(Button) findViewById(R.id.set); 

     set.setOnClickListener(this); 
     timepicker = (TimePicker)findViewById(R.id.timepicker); 
    } 



@Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     if(v==set) 
     { 
      Calendar c = Calendar.getInstance(); 
      int y = c.get(Calendar.YEAR); 
      int m = c.get(Calendar.MONTH); 
      int d = c.get(Calendar.DAY_OF_MONTH); 

      c.set(y,m,d,timepicker.getCurrentHour(),timepicker.getCurrentMinute(),00); 
      setAlarm(c); 
     } 

private void setAlarm(Calendar targetCal){ 

      Intent intent = new Intent(getBaseContext(), My.class); 


      PendingIntent pendingIntent = PendingIntent.getBroadcast(Alarmset.this, 0, intent, 0); 
      AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
      alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent); 

     } 

Теперь Ресивер класс

public class MyReciever extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     Do Your Stuff here 

    } 

И Xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.mainmenu.Alarmset" 
    > 

    <Button 
     android:id="@+id/set" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/timepicker" 
     android:layout_below="@+id/timepicker" 
     android:layout_marginTop="62dp" 
     android:text="Set" 
     android:textStyle="bold" /> 

    <TimePicker 
     android:id="@+id/timepicker" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" /> 
</RelativeLayout> 
Смежные вопросы