একটি Android অ্যাপ্লিকেশন আনইনস্টল এবং পুনরায় ইনস্টল করার পরে তার ডেটা মনে রাখে


191

৪.১ এর উপরে সমস্ত সংস্করণ লক্ষ্য করে একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন বিকাশ করার সময়, আমি পর্যবেক্ষণ করেছি যে আমার অ্যাপটি আনইনস্টল করা এবং এটি আবার ইনস্টল করা এর ডেটা সাফ করে না।

অ্যাপ্লিকেশনটি তার প্রথম স্ক্রিনে জিজ্ঞাসিত বিশদ সংরক্ষণ করার জন্য ডিজাইন করা হয়েছে। ওএস সংস্করণ ৪.৪.৪ এ আনইনস্টল ও পুনরায় ইনস্টল করার পরে, অ্যাপটি ব্যবহারকারীকে ডেটা পূরণ করতে অনুরোধ জানায়, যা স্বাভাবিক। তবে সংস্করণ 6.0 এ একই ইনস্টল / আনইনস্টল সিকোয়েন্সটি মূলত ইনপুটটিকে ডেটা ব্যাক করে দেয়।

আমি /data/data/my package folderআনইনস্টল করার পরে ডাটাবেস চলে গেছে এবং সত্যই যে ফোল্ডারটি আনইনস্টল করার সময় মুছে ফেলা হবে তা দেখার জন্য গিয়ে দেখার চেষ্টা করেছি ।

আমি সেটিংস পৃষ্ঠাতে গিয়ে টাইটানিয়াম ব্যাকআপের মাধ্যমে অ্যাপটি মুছে ফেলার চেষ্টা করেছি এবং ফলাফলগুলি একই। ডিভাইসটি Nexus 5 চলমান v6.0 তে মূলযুক্ত।

এই অদ্ভুত আচরণের কারণ কী হতে পারে?

উত্তর:


323

এটি কারণ অ্যান্ড্রয়েড 6 এর স্বয়ংক্রিয় ব্যাকআপ রয়েছে। আপনি যদি আপনার ডেটা ব্যাক আপ করতে না চান বা আপনি কিছু সংস্থান অন্তর্ভুক্ত করতে বা বাদ দিতে চান তবে আপনার টিউন android:allowBackupএবং android:fullBackupContentআপনার ম্যানিফেস্টের <application>ট্যাগে থাকা দরকার। এটি কোনও বাগ নয়।

অ্যান্ড্রয়েডে অটোব্যাকআপ সম্পর্কে আরও এখানে


27
এটি সঠিক উত্তর এবং এটি আমার পক্ষে কাজ করে (আমারও একই সমস্যা ছিল) এই আচরণটি এড়াতে অ্যান্ড্রয়েড লাগানো দরকার: অনুমতিব্যাকআপ = "মিথ্যা" এবং অ্যান্ড্রয়েড: ফুলব্যাকআপ কনটেন্ট = "মিথ্যা" ম্যানিফেস্টে।
xml

32
আপনারা কেউ কেউ যদি অবাক হন, অ্যান্ড্রয়েড: অনুমতি ব্যাকআপ এবং অ্যান্ড্রয়েড: ফুলব্যাকআপ কনটেন্ট <অ্যাপ্লিকেশন />
জ্যাক '

2
ডকুমেন্টেশন থেকে: অ্যান্ড্রয়েড: ফুলব্যাকআপ কনটেন্টটি এক্সএমএল ফাইলে পয়েন্ট করে যার মধ্যে ব্যাকআপ বিকল্প রয়েছে। ডিফল্টরূপে, বেশিরভাগ ফাইল ব্যাক আপ হয়। যদিও এটি "মিথ্যা" এ সেটিংস কোনও ত্রুটি ট্রিগার করে না, আমার ধারণা এটি সেট করা ভুল wrong
বাজিকডুস্কো

3
নিশ্চিত না কেন তারা ব্যাকআপ নিতে ডিফল্ট আচরণ রেখেছিল, কারণ আচরণটি পূর্ববর্তী সংস্করণগুলির সাথে সিঙ্কে নেই তাই বিরক্তিকর হয়ে ওঠে। যারা এটি চান তারা এটি চালু করতে পারে।
অতুল

7
কেউ কীভাবে ব্যাকআপগুলি মুছতে জানেন?
1800 তথ্য

29

গ্রেওয়ালফ ৮২ এর উত্তরটি সঠিক তবে আমি এটিতে কিছু তথ্য যুক্ত করতে চাই।

আমার অ্যান্ড্রয়েড অ্যাপটি তৈরি করার সময় (জ্যামারিন ব্যবহার করে) আমি লক্ষ্য করেছি যে যখনই আমি ভিজ্যুয়াল স্টুডিও থেকে অ্যাপটি পুনরায় চালু করব তখন কয়েক মাস আগে আমার ডেটা আবার ডেটাতে ফিরে আসবে। আমি কেবল এটি বন্ধ করে ভিএস থেকে পুনরায় চালিত করেছি বা এটি অ্যাপ্লিকেশনটি সম্পূর্ণরূপে আনইনস্টল করে পুনরায় ইনস্টল করেছি কিনা তাতে কিছু যায় আসে না।

এটিও লক্ষণীয় যে আমরা কোনও অ্যাপ্লিকেশনটিকে স্পষ্টভাবে কোনও ব্যাকআপ সঞ্চয় করার জন্য বলিনি।

ব্যাকআপটি ভিজ্যুয়াল স্টুডিও থেকে প্রবর্তন করার সময় নতুন ডেটা ওভাররাইট করে বলে মনে হয়েছিল, এবং আমাদের ব্যবহারকারীরা আমাদের অ্যাপ্লিকেশনটির রিলিজ বিল্ড ব্যবহার করছে এবং ব্যাকআপগুলি দিয়ে নতুন ডেটা ওভাররাইট করে আসছে reports

যেহেতু ব্যাকআপ এবং পুনরুদ্ধার কখন ঘটে তা আমি ঠিক জানি না কারণ এই বৈশিষ্ট্যটি কেবল সমস্যা দেখা দিয়েছে।

নিম্নলিখিত এক্সএমএলে প্রদর্শিত হিসাবে আমরা আমাদের অ্যান্ড্রয়েড ম্যানিফেস্টটি পরিবর্তন করেছি:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.XXXXXXX" android:versionName="8.0.0" android:installLocation="auto" android:versionCode="439">
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="24" />
    <application 
               android:label="@string/appName" 
               android:icon="@drawable/icon_small" 
               android:installLocation="internalOnly" 
               android:largeHeap="true"
               android:allowBackup="false"
               android:fullBackupOnly="false"
               />
...
</manifest>

একবার আমরা স্পষ্টভাবে মানটিকে মিথ্যাতে সেট করে দিলে সমস্ত কাজ করে বলে মনে হয়। আমি এটি একটি অপ্ট-ইন বৈশিষ্ট্য হিসাবে প্রত্যাশা করব তবে ... মনে হচ্ছে এটি ডিফল্টরূপে এমন অ্যাপ্লিকেশানের জন্য হতে পারে যা কোনওভাবেই মান নির্দিষ্ট করে না।


ধন্যবাদ। আমারো একই ইস্যু ছিল.
হাদি ফুলাদি তালারি

15

আপনার ডিভাইসের ব্যাকআপ এবং রিসেট সেটিংসটি পরীক্ষা করা উচিত এবং স্বয়ংক্রিয় পুনরুদ্ধার বন্ধ করা উচিত (কোনও অ্যাপ্লিকেশন পুনরায় ইনস্টল করার সময়, ব্যাকআপ সেটিংস এবং ডেটা পুনরুদ্ধার করা হবে))

অটো-ব্যাকআপ বন্ধ করা স্বয়ংক্রিয়ভাবে পুনরুদ্ধার থেকে আলাদা। আপনি যদি মনে করেন আপনার অ্যাপ্লিকেশনটির জন্য এটি অটো-ব্যাকআপ চালু করতে সহায়ক হবে। তবে আপনি যদি ভাবেন যে এটি এমন শেষ ব্যবহারকারীকে তৈরি করবে যারা তাদের ডিভাইসের স্বতঃ-পুনঃস্থাপন বৈশিষ্ট্যটি চালু আছে তা অবগত নয় তবে এটিকে বন্ধ করে দিতে নির্দ্বিধায়।

আমার ক্ষেত্রে, আমি অনুমতিব্যাকআপ বৈশিষ্ট্যটি বন্ধ করে দিয়েছি, তবে যেহেতু আমার কাছে ইতিমধ্যে ক্লাউডটিতে পূর্ববর্তী সংস্করণটির একটি ব্যাকআপ ছিল, এটি এখনও পুনরুদ্ধার করে চলেছে।

অ্যান্ড্রয়েড 6.0 এ স্যামসাং ডিভাইসের রেফারেন্স হিসাবে চিত্রটি দেখুন। অন্যান্য ডিভাইস এবং সংস্করণগুলির আলাদা স্ক্রিন থাকতে পারে। নীচে চিত্র দেখুন।

ব্যাকআপ এবং রিসেটের অধীনে স্বয়ংক্রিয় পুনরুদ্ধার সেটিং


আমার একই সমস্যা আছে, আমার অ্যাপটি যখন চালু ছিল তখন কয়েকটি ব্যবহারকারীর জন্য ডেটা ব্যাক আপ করেছিল। সিঙ্ক হওয়া ডেটা সাফ / বাতিল করার কোনও সম্ভাবনা আছে কি?
আদিত্য চৌহান

5

আমার সম্প্রতি এই বৈশিষ্ট্যগুলির সুবিধা নেওয়ার দরকার ছিল, আমি নথিপত্রগুলি উন্মোচন করতে সক্ষম হয়েছি এবং এটির জন্য বিস্তৃত পরীক্ষার পরে আমি এটি হ্রাস করতে সক্ষম হয়েছি:

অ্যান্ড্রয়েড: অনুমতি ব্যাকআপ - এটিতে থাকা ডিভাইসে স্থানীয় অ্যাপের ডেটা ব্যাকআপ নেবে।

অ্যান্ড্রয়েড: ফুলব্যাকআপ কনটেন্ট - গুগলের ব্যাকআপ পুনরুদ্ধার এপিআই এবং একটি এক্সএমএল ফাইলের মাধ্যমে ঠিক কী ব্যাকআপ করতে হবে তা নির্দিষ্ট করতে, পাশাপাশি প্রক্রিয়াটিতে আরও নিয়ন্ত্রণের জন্য আপনি প্রয়োগ করতে পারেন এমন একটি ব্যাকআপ ম্যানেজার শ্রেণীর সাহায্যে ব্যবহার করা যেতে পারে।

তবে ডকুমেন্টেশনটি বলে, এবং আমি পরীক্ষার মাধ্যমে নিশ্চিত করেছি যে ডিভাইসটি পুনরুদ্ধার করা হবে এবং পুনরুদ্ধার অ্যাপ্লিকেশন ডেটা প্রক্রিয়া শুরু হলেই পুনরুদ্ধার হয়। অথবা অ্যাপ্লিকেশনটি অ্যাডবির মাধ্যমে সাইডলয়েড করা হলে এটি পুনরুদ্ধার হবে, যা আমরা অ্যান্ড্রয়েড স্টুডিওর মাধ্যমে আমাদের ডিভাইসগুলিতে পরীক্ষার জন্য বা ডিবাগ করার জন্য অ্যাপটি চালিত করি তখন আমরা যা করি। নোট করুন আপনি যদি অ্যান্ড্রয়েড সেট করেন তবে: অ্যান্ড্রয়েড ব্যাকআপ তবে অ্যান্ড্রয়েড কনফিগার করবেন না: গুগল এপি কোড সহ ফুলব্যাকআপ কনটেন্ট তবে অ্যাপ্লিকেশনগুলির ডেটা কেবলমাত্র স্থানীয়ভাবে সঞ্চিত হয়, যদি আপনি এটি সঠিকভাবে কনফিগার করেন তবে যদি আপনার অ্যাপ্লিকেশনটির ব্যাক আপ থাকে এবং আপনি অ্যাপ্লিকেশনগুলিতে একটি নতুন ডিভাইস পান ডেটা মেঘে সংরক্ষণ করা হয়েছিল যাতে এটি একটি নতুন ডিভাইসে পুনরুদ্ধার করা যায়।


3

অ্যান্ড্রয়েড যুক্ত করা হচ্ছে: ম্যানিফেস্ট ফাইলে অ্যাপ্লিকেশন ট্যাগের আওতায় অনুমতিব্যাকআপ = "মিথ্যা" আমার সমস্যা সমাধান করেছে।

অটো ব্যাকআপ সহ ব্যবহারকারী ডেটা ব্যাকআপের জন্য অ্যান্ড্রয়েড ডকুমেন্টেশন এখানে রয়েছে


2

কেবল অ্যান্ড্রয়েড পরিবর্তন করুন: অনুমতিব্যাকআপ = অ্যান্ড্রয়েডে "সত্য": ম্যানিফিয়েস্ট.এক্সএমএলকে অনুমতিব্যাকআপ = "মিথ্যা"। এটি কাজ করা হবে।

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    <application
        android:allowBackup="false"
        android:icon="@mipmap/app_icon"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
</manifest>

2

কেবল এটি যুক্ত করে আমরা দেখতে পেলাম যে অ্যান্ড্রয়েড 9 এ (এইচএমডি নোকিয়া ডিভাইসে) সম্পদগুলি রাখা হয়েছিল, এমনকি ইন্টারফেসের মাধ্যমে এবং অ্যাডাবির মাধ্যমে অ্যাপ্লিকেশন মোছার পরেও।

যোগ করার উত্তর:

android:allowBackup="false" android:fullBackupOnly="false"

স্পষ্টতই, এটি কোনও নতুন উত্তর নয় - তবে আমাদের মতো অবস্থানের লোকদের জন্য এটি একটি পর্যবেক্ষণ।


2

আপনি যদি অ্যান্ড্রয়েড 10 টার্গেট করে থাকেন তবে আপনাকে android:hasFragileUserData="true"অ্যাপ্লিকেশন ট্যাগটি লাগাতে হবেAndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
  <application
    android:name=".MyApplication"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:allowBackup="true"
    android:hasFragileUserData="true">

    .....

     </application>

 </manifest>

android: hasFragileUserData হ'ল একটি নতুন ম্যানিফেস্ট সেটিংস (আমি অনুমান করছি)। "সত্য হলে ব্যবহারকারীকে অ্যাপের ডেটা আনইনস্টল করার জন্য অনুরোধ জানানো হয়"। এটি আপত্তিজনকর জন্য পাকা বলে মনে হচ্ছে তবে আমি দেখতে পাচ্ছি এটি কয়েকটি অ্যাপ্লিকেশনের জন্য কোথায় কার্যকর হতে পারে।

Https://commonsware.com/blog/2019/06/06/random-musings-q-beta-4.html দেখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.