আমি এটি ব্যবহার সম্পর্কে বেশ কয়েকটি পোস্ট পড়েছি, তবে এটি আমার জন্য কার্যকর না হওয়ায় অবশ্যই কিছু হারিয়ে যেতে হবে। আমার ক্রিয়াকলাপ এ এর ম্যানিফেস্টে লঞ্চমোড = "একক শীর্ষ" রয়েছে। এটি লঞ্চমোড = "সিঙ্গলইনস্ট্যান্স" সহ বি ক্রিয়াকলাপ শুরু করে। ক্রিয়াকলাপ বি একটি ব্রাউজার খোলে এবং গ্রহণ করে এবং ফিরে পেতে ইচ্ছুক হয়, এজন্যই এটি একক ইনস্ট্যান্স। আমি পিছনের বোতামটি ওভাররাইড করার চেষ্টা করছি যাতে ব্যবহারকারীকে ক্রিয়াকলাপ A এ আবার প্রেরণ করা হয় এবং তারপরে আবার ক্রিয়াকলাপ বিটিতে ফিরে না গিয়ে ক্রিয়াকলাপটি ছেড়ে দিতে ফিরে টিপতে পারেন।
// activity B
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR
&& keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0) onBackPressed();
return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
startActivity(new Intent(this, UI.class)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK));
return;
}
ব্রাউজার থেকে ফিরে আসার পরে, স্ট্যাকটি হ'ল ... এ, বি, ব্রাউজার, বি
আমি আশা করি যে এই কোডটি স্ট্যাকটি ... এ ... এ পরিবর্তিত হবে যাতে আরও একবার চাপলে ব্যবহারকারীকে আবার হোম স্ক্রিনে নিয়ে যায়।
পরিবর্তে মনে হচ্ছে স্ট্যাকটি ... এ, বি, ব্রাউজার, বি, এ ... এ বদলে গেছে যেন though পতাকাগুলি নেই।
আমি স্টার্টঅ্যাক্টিভিটির পরে ক্রিয়াকলাপ বি তে ফিনিশ () কল করার চেষ্টা করেছি, কিন্তু তারপরে পিছনের বোতামটি আবার আমাকে ব্রাউজারে নিয়ে যায়!
আমি কী মিস করছি? ধন্যবাদ!
Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP
ঠিক তাই করবে।