पर पृष्ठभूमि में काम नहीं करता है यह मेरा Activity
कोड है,अलार्म प्रबंधक Android 6.0
Long time = new GregorianCalendar().getTimeInMillis()+20000;//Setting alarm after 20 sec
Intent intentAlarm = new Intent("alarm");
intentAlarm.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intentAlarm.putExtra("req_code",10);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,10, intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, time, pendingIntent);
ये सभी अनुमतियों को मैं अपने अनुप्रयोग में होती है,
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="com.myapp.pack.permission.SET_ALARM"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
यह मेरा BroadcastReceiver
कोड है ,
@Override
public void onReceive(Context context, Intent intent) {
SharedPreferences sharedPreferences =
context.getSharedPreferences("mydata", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("elligible",true);
editor.apply();
}
मैं पंजीकृत किया है मेरी प्रकट में BroadcastReceiver
,
<receiver android:name="com.myapp.pack.AlarmReciever" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="alarm" />
</intent-filter>
</receiver>
ऊपर कोड सफलतापूर्वक पृष्ठभूमि में पूर्व Marshmallow उपकरणों पर BroadcastReceiver
निष्पादित करता है, लेकिन एक Marshmallow डिवाइस पर, BroadcastReceiver
निष्पादित नहीं होती है। क्या किसी को पता है कि यहां क्या हो रहा है? धन्यवाद।
तो अगर मैं 'setExactAndAllowWhileIdle()' का उपयोग करता हूं तो क्या मुझे अपने ऐप के न्यूनतम एसडीके संस्करण को 23 में बदलना होगा? –
धन्यवाद आदमी! आप रॉक :) –
'setExact()' केवल एपीआई 1 9 से उपलब्ध है। इसलिए आपको स्निपेट में स्थिति में अगर भी चेक में ऐसा करने की ज़रूरत है। – Henry