প্রথমত, এই পদ্ধতির জন্য সর্বনিম্ন এপিআই 16 প্রয়োজন।
এই সমস্যাটি আরও ব্যাপকভাবে সমাধান করার জন্য আমি এই সমাধানটি 3 ভাগে ভাগ করব।
1. আপনি যদি কোনও ক্রিয়াকলাপে অ্যাপ্লিকেশনটি ছাড়তে চান তবে এই কোড স্নিপেট ব্যবহার করুন:
if(Build.VERSION.SDK_INT>=16 && Build.VERSION.SDK_INT<21){
finishAffinity();
} else if(Build.VERSION.SDK_INT>=21){
finishAndRemoveTask();
}
২. যদি আপনি কোনও অ ক্রিয়াকলাপে অ্যাক্সেস আছে এমন কোন কার্যকলাপের ক্লাসে অ্যাপ্লিকেশনটি ছাড়তে চান তবে এই কোড স্নিপেট ব্যবহার করুন:
if(Build.VERSION.SDK_INT>=16 && Build.VERSION.SDK_INT<21){
getActivity().finishAffinity();
} else if(Build.VERSION.SDK_INT>=21){
getActivity().finishAndRemoveTask();
}
৩. আপনি যদি কোনও অ-ক্রিয়াকলাপ শ্রেণিতে অ্যাপ্লিকেশনটি ছাড়তে চান এবং পরিষেবাদির মতো ক্রিয়াকলাপে অ্যাক্সেস না করতে পারেন তবে আমি আপনাকে ব্রডকাস্টরসিভার ব্যবহার করার পরামর্শ দিচ্ছি। আপনি এই প্রকল্পটি আপনার প্রকল্পের সমস্ত ক্রিয়াকলাপে যুক্ত করতে পারেন।
লোকালব্রোডকাস্টম্যানেজার এবং ব্রডকাস্টআরসিভার ইনস্ট্যান্স ভেরিয়েবলগুলি তৈরি করুন। আপনি চাইলে getPackageName () + "। ক্লোজআপ" প্রতিস্থাপন করতে পারেন।
LocalBroadcastManager mLocalBroadcastManager;
BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(getPackageName()+".closeapp")){
if(Build.VERSION.SDK_INT>=16 && Build.VERSION.SDK_INT<21){
finishAffinity();
} else if(Build.VERSION.SDK_INT>=21){
finishAndRemoveTask();
}
}
}
};
এটিকে ক্রিয়াকলাপের অনক্রিয়েট () পদ্ধতিতে যুক্ত করুন।
mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);
IntentFilter mIntentFilter = new IntentFilter();
mIntentFilter.addAction(getPackageName()+".closeapp");
mLocalBroadcastManager.registerReceiver(mBroadcastReceiver, mIntentFilter);
এছাড়াও, ক্রিয়াকলাপের onDestroy () পদ্ধতিতে নিবন্ধভুক্ত রিসিভারটি কল করতে ভুলবেন না
mLocalBroadcastManager.unregisterReceiver(mBroadcastReceiver);
অ্যাপ্লিকেশন ছাড়ার জন্য, আপনাকে অবশ্যই লোকালড্রোডকাস্টম্যানেজার ব্যবহার করে সম্প্রচার পাঠাতে হবে যা আমি আমার প্লে সার্ভিস ক্লাসে ব্যবহার করি যা পরিষেবাটি প্রসারিত করে।
LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(PlayService.this);
localBroadcastManager.sendBroadcast(new Intent(getPackageName() + ".closeapp"));