2015-12-31 24 views
5

Ben mükemmel benim arka plan servisi koşmak eklemek ama telefonum aşağıda bana yardım edin kapatın ve get eylem android.intent.action.BOOT_COMPLETED.but hizmet değil start.my kodunda sonra benim alıcısı sınıfına geçiş !!!BOOT_COMPLETED tarihinden sonra hizmet neden başlamıyor?

public class ReceiverCall extends BroadcastReceiver { 
    static final String ACTION = "android.intent.action.BOOT_COMPLETED"; 
    static final String ACTION1 = "android.intent.action.QUICKBOOT_POWERON"; 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     Log.v("log_tag", "Action :: "+intent.getAction()); 
     if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) { 
       /* Setting the alarm here */ 
       Intent alarmIntent = new Intent(context, MyAlarmService.class); 
       PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, 0); 
       AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
       Calendar calendar = Calendar.getInstance(); 
       calendar.setTimeInMillis(System.currentTimeMillis()); 
       manager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), + (1000 * 60 * 2), pendingIntent); 
       Log.v("log_tag", "REPEAT"); 
      } 
    } 

Ayrıca manifoldda da izin ekliyorum.

<uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="com.employeemanager.app.permission.C2D_MESSAGE" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.BROADCAST_STICKY" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <uses-permission android:name="android.permission.GET_TASKS" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

    <application 
     android:allowBackup="true" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="***8" 
      android:label="@string/app_name" 
      android:theme="@android:style/Theme.NoTitleBar" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <service 
      android:name="***.MyAlarmService" 
      android:enabled="true" > 
     </service> 

     <receiver android:name="***.ReceiverCall" 
      android:enabled="true" > 
      <intent-filter> 
       <action android:name="***" /> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
       <action android:name="android.intent.action.QUICKBOOT_POWERON" /> 
       <action android:name="android.intent.action.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE" /> 
       <category android:name="android.intent.category.LAUNCHER" > 
       </category> 
      </intent-filter> 
     </receiver> 
    </application> 
+0

Uygulamanız bir SD kartta mı? Ayrıca, alıcınızı ve hizmetinizi manifestinize koyduğunuzda, tam paketi şu şekilde koymayı deneyin: com.your.package.ReceiverCall ve eğer çalışırsa bana bildirin –

+0

Skizo ayrıca tam paket adı ekleyin ama hiçbir şey eklemeyin. – crickpatel0024

+0

Anketime bakın lütfen –

cevap

3

Belki yanlış yazılmış ama bu Intent çalışması istiyorsanız aramalısınız:

context.startService(alarmIntent); 

Ve bu günlük Log.v("log_tag", "Action :: "+intent.getAction()); bu bir Log.v("log_tag", "REPEAT"); de senin LogCat üzerinde lütfen gösterilmektedir varsa bana bildirin.

Ben senin BroadcastReceiver böyle olacak öneririm: Sonra

public class ReceiverCall extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 
    Log.v("log_tag", "Action :: "+intent.getAction()); 
    if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { 
      //make an intent to your Service as follows 
      Intent serviceIntent = new Intent(context, MyAlarmService.class); 
      context.startService(serviceIntent); 
     } 
} 

üzerinde senin içinde Service senin senin Service ait onCreate bu ekleyin:

/* Setting the alarm here */ 
Intent alarmIntent = new Intent(context, Whatever.class); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, 0); 
AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
Calendar calendar = Calendar.getInstance(); 
calendar.setTimeInMillis(System.currentTimeMillis()); 
manager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), + (1000 * 60 * 2), pendingIntent); 
Log.v("log_tag", "REPEAT"); 

Sana doğurduğu da öneririm Yeni BroadcastReceiver ve üzerinde tekrarlamak istediğiniz şeyleri yapın ve 'u BroadccastReceiver ile değiştirin.

+0

12-31 17: 00: 48.645: V/log_tag (2473): İşlem :: android.intent.action.BOOT_COMPLETED 12-31 17: 00: 48.649: V/log_tag (2473): REPEAT – crickpatel0024

+0

Eklediniz content.startService (alarmIntent); '? –

+0

bir dakika kontrol ederim. – crickpatel0024

2

uygulama harici depolama yüklü bir şans, bu olayı tamamlanmış çizme alamaz. Bildirime android:installLocation="internalOnly" eklemelisiniz.

+0

Helmi internalonly ekliyorum ama çalışmıyor .. !! – crickpatel0024

İlgili konular