অ্যান্ড্রয়েড.আইন.ট.অ্যাকশন.আরভি এর অর্থ কী?


86

আমি বিভিন্ন বিভ্রান্তিকর ব্যাখ্যা দেখেছি ..

<intent-filter>
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

মানে কি

<action android:name="android.intent.action.MAIN" />

এবং

 <category android:name="android.intent.category.LAUNCHER" />

এবং

 <category android:name="android.intent.category.DEFAULT" />

উত্তর:


74

android.intent.action.MAIN এর অর্থ এই ক্রিয়াকলাপটি হ'ল অ্যাপ্লিকেশনের এন্ট্রি পয়েন্ট, অর্থাৎ আপনি যখন অ্যাপ্লিকেশনটি চালু করবেন তখন এই ক্রিয়াকলাপটি তৈরি হয়।

ডক্স থেকে

ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.

এছাড়াও, থেকে এখানে

ক্রিয়াকলাপ অ্যাকশনটি একটি প্রধান এন্ট্রি পয়েন্ট হিসাবে শুরু হয়, ডেটা পাওয়ার আশা করে না।

android.intent.category.DEFAULT মূলত অন্তর্নিহিত উদ্দেশ্যগুলির জন্য ব্যবহৃত হয়। যদি আপনার ক্রিয়াকলাপ কোনও অন্তর্নিহিত অভিপ্রায় দ্বারা শুরু করা ইচ্ছুক থাকে তবে এটি এই ক্যাটিটরিটিকে তার ফিল্টারে অন্তর্ভুক্ত করা উচিত। যদি আপনার ক্রিয়াকলাপ কোনও নির্দিষ্ট বিভাগ নির্ধারিত না হয় তবে কোনও অন্তর্নিহিত ইন্টেন্ট দ্বারা শুরু করা যেতে পারে, তবে এর উদ্দেশ্য ফিল্টারটি এই বিভাগটি অন্তর্ভুক্ত করা উচিত।

android.intent.category.LAUNCHER

বিভাগ - কার্যকর করার জন্য ক্রিয়া সম্পর্কে অতিরিক্ত তথ্য দেয় information

CATEGORY_LAUNCHER এর অর্থ এটি শীর্ষ স্তরের অ্যাপ্লিকেশন হিসাবে লঞ্চারে উপস্থিত হওয়া উচিত

দস্তাবেজগুলি দেখুন ..

  1. http://developer.android.com/references/android/content/Inttent.html
  2. http://developer.android.com/guide/topics/manifest/action-element.html

4
না, MAIN একা "ক্রিয়াকলাপ হোম শুরু করবেন না"। MAINঅনেক ব্যবহার আছে।
কমন্সওয়্যার

94

ACTION_MAINঅ্যাপ্লিকেশন জন্য একটি এন্ট্রি পয়েন্ট হিসাবে বিবেচনা করা হয়। সাধারণত, এটা সঙ্গে সম্মিলন CATEGORY_LAUNCHERএকটি ইন <intent-filter>একটি কার্যকলাপ যে হোম স্ক্রিন এর লঞ্চারে প্রদর্শিত হওয়া উচিত ইঙ্গিত, বা অন্য কিছু যা নিজেই বিবেচনা করে একটি লঞ্চার যাবে। এই জাতীয় "আরম্ভকারী" PackageManagerব্যবহার করে কোয়েরি করতে পারেqueryIntentActivities() জাতীয় ক্রিয়াকলাপগুলি খুঁজে পেতে এবং ব্যবহারকারীর কাছে প্রদর্শন

তবে ACTION_MAINঅন্যান্য বিশেষ উদ্দেশ্যে অন্যান্য বিভাগের সাথে একত্রে ব্যবহৃত হতে পারে। উদাহরণস্বরূপ, এর CATEGORY_CAR_DOCKসাথে ACTION_MAINএমন একটি ক্রিয়াকলাপ নির্দেশ করা হয় যা যখন ব্যবহারকারী তাদের ফোনটি প্রস্তুতকারকের সরবরাহকারী গাড়ি ডকের কাছে ফেলে দেয় তখন তাকে প্রার্থী হিসাবে বিবেচনা করা উচিত।

যখন একটি এর Intentসাথে ব্যবহার করা হয় startActivity(), যদি Intentইতিমধ্যে এটি কোনও বিভাগে স্থাপন না করা হয় তবে এটি এতে স্থাপন করা হয় CATEGORY_DEFAULT। অতএব, অন্য কিছু না করে ব্যবহার করে কিছু<activity> <intent-filter> নির্দিষ্ট করা দরকার । <category><category android:name="android.intent.category.DEFAULT" />


4
upvated! আমি এটি জানতাম যে আপনি এটির উত্তর দেবেন এবং আমি একটি স্পষ্ট এবং সংক্ষিপ্ত উত্তর প্রত্যাশিত হিসাবে এটি পড়ার অপেক্ষায় ছিলাম। ধন্যবাদ
স্পারডো

6
আহ, তবুও আপনি কেন আমাদের দুজনের দরকার তা ব্যাখ্যা করেননি need মানে, অ্যাকশন মুখ্য = প্রবেশ পয়েন্ট, এটি পেয়েছে। CATEGORY_LAUCHER = হোম স্ক্রিনের প্রবর্তকটিতে কোনও ক্রিয়াকলাপ উপস্থিত হওয়া উচিত তা বোঝাতে two এই দুটি বাক্য একইভাবে আলাদা আলাদাভাবে বর্ণিত হয়, তাই না?
এফআরআর

9
@ ফেসার: না, তারা নেই। আপনি উত্তরটি পঠন সহ দ্বিতীয় অনুচ্ছেদে পাঠ করে বলতে পারেন যা এটির কোনও ভিন্ন ব্যবহারের উদাহরণ ACTION_MAINদেয় যা কোনও হোম স্ক্রিন-স্টাইল লঞ্চারকে জড়িত না
কমন্সওয়্যার

4
@ vgokul129: হোম স্ক্রিন প্রবর্তকরা বিশেষত এমন ক্রিয়াকলাপগুলির সন্ধান করেন <intent-filter>যা দুটি <action android:name="android.intent.action.MAIN" />এবং এর সাথে রয়েছে <category android:name="android.intent.category.LAUNCHER" />
কমন্সওয়্যার

4
@ vgokul129: "লঞ্চারে আইকন ক্লিক করার সময় সুনির্দিষ্ট হওয়ার জন্য, কোনও স্টার্টঅ্যাক্টিভিটি (অভিপ্রায়) কল করা উচিত নয়" - কেবলমাত্র যদি আপনি নিজের লঞ্চ দিয়ে নিজের হোম স্ক্রিনটি লিখে থাকেন যা এই ধরণের সক্ষমতার প্রস্তাব দেয়। একটি হোম স্ক্রিন লঞ্চারের আচরণটি সেই হোম স্ক্রিনের প্রয়োগকারীদের উপর নির্ভর করে। বেশিরভাগ ফোকাস বিজ্ঞাপনযুক্ত লঞ্চযোগ্য ক্রিয়াকলাপ শুরু করার উপর, যেহেতু এটি কোনও লঞ্চারের প্রধান ভূমিকা। এখনই কল করে এমন একটি ক্রিয়াকলাপটি করতে আপনাকে স্বাগত জানানো হয়েছে finish()তবে ব্যবহারকারীরা ভাবেন যে আপনার অ্যাপ্লিকেশনটি ভেঙে গেছে।
কমন্সওয়্যার

2
<action android:name="android.intent.action.MAIN"/>

এই অ্যাপ্লিকেশনটির জন্য মূল ক্রিয়াকলাপ

 <category android:name="android.intent.category.LAUNCHER" />

এটি লঞ্চ বিভাগে রয়েছে, এর অর্থ এটি কোনওরকম একটি আইকন পায় যা নিজেকে "লঞ্চ" হিসাবে মনে করে, যেমন হোম স্ক্রিন screen

 <category android:name="android.intent.category.DEFAULT" />

আর্টঅ্যাক্টিভিটি () এ কলটি অন্য কোনও বিভাগ নির্দিষ্ট না করা থাকলে সর্বদা ডিফল্ট বিভাগটি যুক্ত করবে।

android.intent.category.DEFAULTআপনার অন্যান্য বিভাগগুলি থাকলেও সাধারণত যুক্ত করুন । এটি গ্যারান্টিযুক্ত হবে যে যদি অনুরোধটি ইন্টেন্টটি শুরু করার সময় কোনও বিভাগ সরবরাহ না করে startActivity(intent), তবে আপনার প্রাপ্তি ক্রিয়াকলাপটি সেই উদ্দেশ্যগুলিও গ্রহণ করতে পারে ..

উত্স: অ্যানড্রইড বিকাশের ব্যস্ত কোডার গাইড

https://commonsware.com/Aroidroid/

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