2014-11-13 3 views
0

Я хотел бы периодически запускать intenservice для эха 5 секунд. в моем умысел службы и BroadcastReceiver Я использую log.e, но у меня нет какой-либо журнал в LogCat:IntentService не начнет использовать AlarmManager и broadcastReceiver

в моем FragmentActivity:

public void scheduleAlarm(Context con) { 
     Intent intent = new Intent(con, CheckNotificationPerEach12HourBroadC.class); 
     final PendingIntent pIntent = PendingIntent.getBroadcast(con, 0, 
      intent, 0); 
     long firstMillis = System.currentTimeMillis(); // first run of alarm is immediate 
     AlarmManager alarm = (AlarmManager) con.getSystemService(Context.ALARM_SERVICE); 
     alarm.setRepeating(AlarmManager.RTC_WAKEUP, firstMillis, intervalMillis, pIntent); 
     } 

мой BroadcastReceiver:

public class CheckNotificationPerEach12HourBroadC extends BroadcastReceiver{ 

@Override 
public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    Intent i = new Intent(context, CheckNotificationPerEach12Hour.class); 
    Log.e("CheckNotificationPerEach12HourBroadC", "fired"); 
    // i.putExtra("foo", "bar"); 
    context.startService(i); 
} 

} 

мой IntentService:

public class CheckNotificationPerEach12Hour extends IntentService{ 

public CheckNotificationPerEach12Hour() { 
    super("CheckNotificationPerEach12Hour"); 
    // TODO Auto-generated constructor stub 
} 

@Override 
protected void onHandleIntent(Intent intent) { 
    // TODO Auto-generated method stub 
    Log.e("intent ser", "10 second"); 

} 

} 

в моем Manifest.xml:

<receiver 
     android:name="com.shadyab.utilities.CheckNotificationPerEach12HourBroadC" 
     android:process=":remote" 
     > 
    </receiver> 

    <service 
     android:name="com.shadyab.utilities.CheckNotificationPerEach12Hour" 
     android:exported="false" 
     /> 
+0

Вы хотите запустить метод (который находится в обслуживании) через каждые 5 секунд? –

+0

нет, я хотел бы периодически запускать метод каждые 12 часов, теперь я хочу его изучить. –

+0

Вы можете использовать задачу таймера, я упоминаю ее в ответе. –

ответ

1

Создание службы, и вызвать его в радиовещательного приемника.

public class ServiceTest extends Service { 

private Timer mTimer; 

@Override 
public IBinder onBind(Intent intent) { 
    return null; 
} 

@Override 
public void onCreate() { 
    super.onCreate(); 
    // getLogs(); 

    mTimer = new Timer(); 
    mTimer.schedule(timerTask, 5000, 5 * 1000); 

} 


TimerTask timerTask = new TimerTask() { 

    @Override 
    public void run() { 

     Log.wtf("service","running") 

    } 
}; 

} 
+0

На самом деле я хочу получить некоторые данные из MySQL (даже когда мое приложение закрыто). –

+0

будет работать, даже если приложение закрыто. –

+0

да, но он потребляет много ресурсов. –