কোনও অ্যান্ড্রয়েড ক্রিয়াকলাপটি কীভাবে রেখে যাবেন যাতে এটি পিছনের বোতামটি থেকে অ্যাক্সেস করা যায় না?


130

প্রদত্ত অ্যান্ড্রয়েড ক্রিয়াকলাপে, আমি কোনও সময়ে ব্যবহারকারীর জন্য একটি নতুন ক্রিয়াকলাপ শুরু করতে চাই। একবার তারা প্রথম ক্রিয়াকলাপটি ছেড়ে দ্বিতীয়টিতে পৌঁছে গেলে, প্রথম ক্রিয়াকলাপটি বাসি এবং আমি এটি সম্পূর্ণরূপে সরাতে চাই যাতে এটি পিছনের বোতামটি থেকে আবার অ্যাক্সেস না করে।

এটি সম্পন্ন করার সেরা উপায় কীভাবে? ব্যবহারকারী নতুন ক্রিয়াকলাপ চালু করার সাথে সাথেই আমি কীভাবে এই কার্যকলাপটিকে হত্যা করব বা ধ্বংস করব?


এই উত্তরটি পরীক্ষা করুন , এটি আমার পক্ষে কার্যকর ছিল।
দানিয়ার

উত্তর:


234

আপনাকে শুধু কল করতে হবে finish()

Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
finish();

ধন্যবাদ. এটিকে আরও একধাপ এগিয়ে নিয়ে যাওয়ার জন্য, আমি একটি কথোপকথন উইন্ডো থেকে নতুন ক্রিয়াকলাপটি শুরু করছি - কোডটি কি একইভাবে কাজ করবে?
জনরক

@ ক্যাসিবি এর জন্য ধন্যবাদ..কিন্তু আমি জানতে চাই, আমি কি কোনও পরিষেবা থেকে এই পদ্ধতিটি কল করতে পারি যদি হ্যাঁ তবে কীভাবে?
সুইফটবয়

1
পরিষেবাদির কোনও ক্রিয়াকলাপ নেই যার অর্থ তারা ফিরে যেতে কার্যকলাপ ক্রিয়াকলাপে থাকবেন না। আপনি যদি আপনার পরিষেবা থেকে কিছু ক্রিয়াকলাপ ঘটাতে চান তবে আপনি আমারঅ্যাক্টিভিটি.ফিনিশ () কল করতে সক্ষম হবেন;
কেসিবি

3
এটি একটি 7 বছরের পুরানো উত্তর, এবং এখনও অ্যান্ড্রয়েড এম এবং এন এর জন্য বৈধ
zeeshan

1
@ জুজটকোড onDestroyএকটি লাইফাইসাইকেল পদ্ধতি যা কেবলমাত্র অ্যান্ড্রয়েড ফ্রেমওয়ার্ক থেকে ডাকা হত।
কেসিবি

106

android:noHistory="true"আপনার ম্যানিফেস্টে ক্রিয়াকলাপটি সেট করা স্ট্যাক থেকে যখনই এখান থেকে নেভিগেট করা হয় তখন কোনও ক্রিয়াকলাপ সরিয়ে ফেলবে। দেখতে এখানে



8

আপনি android:noHistory="true"নিজের Activityট্যাগ এ যুক্ত করতে পারেন AndroidManifest.xml

<activity
            ...
            android:noHistory="true">
</activity>

7

হ্যাঁ, আপনাকে যা করতে হবে তা হ'ল আপনি যে কোনও ক্রিয়াকলাপ বন্ধ করতে চান কল ফিনিস ()।


4

আপনার নতুন অভিপ্রায়-> শুরু করার পরে এটি প্রতিটি "নতুন ক্রিয়াকলাপ" এ লিখুন

Intent i = new Intent(this, yourClass.class);
startActivity(i);
finish();

2

অবশেষে, আমি একটি সমাধান পেয়েছি!

আমার প্রসঙ্গটি হ'ল : - ক্রিয়াকলাপটি নষ্ট হয়ে গেলে আমি সকেট সংযোগটি সংযোগ বিচ্ছিন্ন করতে চাই, আমি () ক্রিয়াকলাপ শেষ করার চেষ্টা করেছি তবে এটি আমার কাজ করে না , এর সংযোগটি কোথাও লাইভ রাখুন।

তাই আমি android.os.Process.killProcess(android.os.Process.myPid()); এটি আমার ক্রিয়াকলাপটিকে মেরে ফেলেছি এবং আমি android:excludeFromRecents="true" সাম্প্রতিক ক্রিয়াকলাপ থেকে সরানোর জন্য ব্যবহার করেছি ।


1
এই সমাধানটি আমার পক্ষে কাজ করেছে তবে দুর্ভাগ্যক্রমে একটি ফাঁকা পৃষ্ঠা দেখায় এবং সকেট সংযোগ বন্ধ করতে আপনি সকেট.ক্লস () ব্যবহার করতে পারেন; ।
মেহরদাদ

android.os.Process.killProcess(android.os.Process.myPid())কেবলমাত্র ক্রিয়াকলাপই নয় অ্যাপ্লিকেশন প্রক্রিয়াটিকে হত্যা করে। এর অর্থ হ'ল যে কোনও চলমান পরিষেবা (পটভূমি বা অগ্রভাগ) পাশাপাশি বন্ধ হয়ে যাবে।
রিচিক বসু


0

নতুন ক্রিয়াকলাপটি চালু করার সময় আপনার নীচের কোডটি ব্যবহার করা দরকার।

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