დოკუმენტაციის შეცდომა: Manifest რეგისტრირებული სამაუწყებლო მიმღებები იღებენ ACTION_SHUTDOWN მიზნებს Android 8.0-ში

Manifest რეგისტრირებული მაუწყებლობის მიზნები შემოიფარგლება მხოლოდ რამდენიმეთ Android Oreo-ში და ACTION_SHUTDOWN არ არის ერთ-ერთი მათგანი, თუ არა?

Android იყენებს მაუწყებლობის მიზნებს ბევრი რამისთვის. აპების დეველოპერებს შეუძლიათ მოუსმინონ მათ გარკვეული მოქმედებების შესასრულებლად, მაგალითად, როდესაც MEDIA_MOUNTED მაუწყებლობის განზრახვა აპლიკაციებმა იცოდნენ, როდის დამონტაჟდა SD ბარათი მეხსიერებად. როგორც აპლიკაციის შემქმნელს, შეგიძლიათ დაპროგრამოთ სამაუწყებლო მიმღებები ამისთვის, შემდეგ გამოიძახოთ ფუნქცია, როდესაც მედია დამონტაჟებულია, მაგალითად, აპლიკაციის ნაგულისხმევი შენახვის დირექტორია SD ბარათზე შესაცვლელად. ასეთი რამ არის ის, რისთვისაც გამოიყენება სამაუწყებლო მიზნები. ისინი ძირითადად გამოიყენება გარკვეული სისტემის მოვლენების გადასაცემად ნებისმიერ აპლიკაციაში, რომელსაც შეიძლება ეს ინფორმაცია დასჭირდეს. სამაუწყებლო მიმღებები ან უნდა იყოს დარეგისტრირებული Android Manifest ფაილში ან პროგრამულად, როდესაც წინა პლანზეა.

მეხსიერების სიმრავლის გამო, რომელიც გამოწვეულია სხვადასხვა დეველოპერებით, რომლებიც ახორციელებენ ყველა სახის მაუწყებლობას მიმღებები ხშირად სროლის მიზნებისთვის, Google-მა გადაწყვიტა შეეზღუდა წვდომა ამ სამაუწყებლო მიზნების უმეტესობაზე Android-ში 8.0 ორეო. თუმცა, კომპანიამ აღიარა, რომ არსებობდა რამდენიმე მნიშვნელოვანი სამაუწყებლო განზრახვა, რაც კარგია მაინც მოუსმენენ, რადგან ისინი არც თუ ისე ხშირად ხდება და, შესაბამისად, მეხსიერების გამოწვევის მცირე შანსი აქვთ საკითხები. მათ 

გამოაქვეყნა იმპლიციტური გადაცემის თეთრი სია განზრახვები, რომლებსაც Android აპლიკაციებს მაინც შეუძლიათ მოუსმინონ სამაუწყებლო მიმღებების დარეგისტრირებით Android Manifest-ში. ეს არის ვრცელი სია და მოიცავს თითქმის ყველაფერს, რაც შეიძლება დაგჭირდეთ, როგორც აპლიკაციის შემქმნელს, ერთი გამონაკლისის გარდა.

როგორც ჩანს, Google-მა არ ჩამოთვალა სამაუწყებლო განზრახვა, რომელსაც მრავალი აპლიკაცია იყენებს. Ეს არის ACTION_SHUTDOWN სამაუწყებლო განზრახვა. ეს განზრახვა იგზავნება მოწყობილობის გამორთვისას, რაც შეიძლება იყოს ძალიან მნიშვნელოვანი აპის დეველოპერებისთვის, რათა მათ სწრაფად შეაჩერონ ის, რასაც აპლიკაცია აკეთებს პროცესის დასრულებამდე. მიუხედავად იმისა, რომ ეს სამაუწყებლო განზრახვა არ ჩანს თეთრ სიაში შეყვანილი მიზნების, აპლიკაციების სიაში შეუძლია რეალურად მაინც მოუსმინეთ მას Manifest-ში რეგისტრირებული სამაუწყებლო მიმღების საშუალებით ვალდებულების მიხედვით Android Git-ზე, უბრალოდ Google-მა დაავიწყდა მისი სიაში შეყვანა.

ეს შესანიშნავია, რომ ის რეალურად შეტანილია თეთრ სიაში, რადგან Google აცილებს აპლიკაციებს შესაძლებლობას, ამოიცნონ, როდესაც მოწყობილობა ითიშება ცუდი იქნება როგორც მომხმარებლებისთვის, ასევე აპლიკაციების შემქმნელებისთვის, რადგან ზოგიერთი აპლიკაცია ვეღარ შეძლებს სამუშაოს სწრაფად შენახვას მოწყობილობის გამორთვამდე. ჩვენ ბოლომდე არ ვართ დარწმუნებული, რატომ არ არის ეს სამაუწყებლო მიზანი ჩამოთვლილი Google-ის გვერდზე დეველოპერებისთვის, მაგრამ ჩვენ ვესაუბრეთ Android-ის ვეტერან დეველოპერს CommonsWare და ის ეთანხმება, რომ ეს სავარაუდოდ Google-ის მხრიდან დოკუმენტაციის მარტივი შეცდომაა. მისი თქმით, ეს პირველი შემთხვევა არ იქნება.