2016-05-25 9 views
7

पर शुरू नहीं कर रहा है, मैं एंड्रॉइड एमुलेटर पर चलते समय एक निर्धारित नौकरी शुरू करने के लिए जॉबशेड्यूलर प्राप्त करने में सक्षम नहीं हूं। अगर मैं पर परीक्षण एक असली सैमसंग गैलेक्सी एस 7 और Nexus 5X, दोनों चल एंड्रॉयड 6.0.1, अनुसूचित काम तुरंत शुरू होता है। एम्यूलेटर को 100% बैटरी और चार्जिंग और पूर्ण नेटवर्क की गति सक्षम करने के लिए कॉन्फ़िगर किया गया है।एंड्रॉइड जॉबशेड्यूलर एम्यूलेटर

मैं एंड्रॉइड स्टूडियो 2.1.1 चला रहा हूं, ओएसएक्स एल कैपिटन पर जेआर 1.8.0_92-बी 14 10.11.4। एम्यूलेटर संस्करण 25.1.6 और यह एंड्रॉइड 6.0 चला रहा है।

public static void sendInspectionSessions(Context context) { 
    JobScheduler js = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE); 
    JobInfo job = new JobInfo.Builder(
      INSPECTION_SESSION_JOB_ID, 
      new ComponentName(context, InspectionSessionJobService.class)) 
      .setBackoffCriteria(TimeUnit.SECONDS.toMillis(30), JobInfo.BACKOFF_POLICY_EXPONENTIAL) 
      .setPersisted(true) 
      .setMinimumLatency(0) 
      .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY) 
      .setOverrideDeadline(Config.INSPECTION_SESSION_SEND_DEADLINE) 
      .build(); 
    int id = js.schedule(job); 
    if (id > 0) { 
     LogUtil.i(TAG, "Scheduled InspectionSession send job with id " + id + ". Supplied id was " + INSPECTION_SESSION_JOB_ID); 
    } else { 
     LogUtil.e(TAG, "Failed to schedule InspectionSession send job. Return code was " + id); 
    } 
} 

अनुसूची() दोनों एमुलेटर और डिवाइस पर रिटर्न 1:

यह कैसे मैं अपने काम अनुसूची है। एम्यूलेटर पर कोई त्रुटि संदेश नहीं दिखाए जाते हैं।

मैं AndroidManifest निम्नलिखित तरीके से अपना काम सेवा को परिभाषित किया है:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
<service android:name=".service.InspectionSessionJobService" 
     android:permission="android.permission.BIND_JOB_SERVICE" 
     android:exported="true" /> 

मैं कुछ चूक या इस Android एम्युलेटर एक बग है है? क्या किसी को एमुलेटर पर काम करने के लिए जॉबशेड्यूलर मिला है?

+0

मैं भी एडीबी के माध्यम से प्रक्रिया शुरू करने से ले जाएगा की विधि। उदाहरण के बहुत सारे उदाहरण GCMNetworkManager को संदर्भित करते हैं लेकिन जॉबशेड्यूलर नहीं यदि आप पूर्व 5.0 –

+0

में रूचि नहीं रखते हैं तो मेरे मामले में, पहले यह ऐसा ही प्रतीत होता था क्योंकि सेवा चलती प्रतीत नहीं होती थी। लेकिन कुछ समय बाद मुझे पता चला कि सेवा शुरू होने से पहले देरी हुई थी। यदि हम न्यूनतम विलंबता निर्धारित करते हैं और समय सीमा को ओवरराइड करते हैं तो सेवा लगभग तुरंत निष्पादित की जाएगी। – vsatkh

उत्तर

0

शायद बहुत देर हो चुकी है, लेकिन आप कहां भेजते हैं निरीक्षण सत्र()? आपको ऐप संदर्भ पास करना होगा।

दूसरों के लिए: यदि आप onCreate में यह शुरू हो सकती है() एप्लिकेशन

संबंधित मुद्दे