অ্যাপ্লিকেশনটির শুরু করা ক্রিয়াকলাপ পরিবর্তন করুন


386

আমি আমার অ্যাপ্লিকেশনটির মাংস এবং সাহস তৈরি করেছি তবে আমি একটি ভিন্ন ক্রিয়াকলাপ যুক্ত করতে চাই যা প্রারম্ভিক পয়েন্ট হবে (লগ-ইন স্ক্রিনের ধরণ)।

দম্পতি প্রশ্ন:

  • 1 কীভাবে ক্রিয়াকলাপগুলির মধ্যে স্যুইচ করতে হয় তার সম্পর্কে আমার বেশ হ্যান্ডেল রয়েছে (এই নিবন্ধের ভিত্তিতে: http://www.linux-mag.com/id/7498 ) তবে আমি কীভাবে একটি নতুন তৈরি করতে যাব তা নিশ্চিত নই ( গ্রহনের সাথে)

  • 2 একবার আমি একটি নতুন ক্রিয়াকলাপ তৈরি হয়ে গেলে, আমি কীভাবে এটিকে আমার অ্যাপ্লিকেশনটির ডিফল্ট ক্রিয়াকলাপ হিসাবে সেট করতে পারি? আমি মনে করি আমি কেবল ক্লাসের নাম পরিবর্তন করতে পারলাম ... তবে এটি পরিচালনা করার জন্য আরও কি মার্জিত উপায় আছে (সম্ভবত এটির মধ্যে AndroidManifest.xml)?

উত্তর:


660

হ্যাঁ, আপনি AndroidManifest.xmlফাইলটি ব্যবহার করুন। আপনি এমনকি আপনার অ্যাপ্লিকেশন ম্যানিফেস্টে নির্দিষ্ট করে একাধিক লঞ্চার ক্রিয়াকলাপ নির্দিষ্ট করতে পারেন। লঞ্চারটিতে একটি ক্রিয়াকলাপ দেখাতে আপনি এই ক্রিয়াকলাপগুলিকে ম্যানিফেস্টে আপনার ক্রিয়াকলাপে যুক্ত করেন:

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

49
এই পোস্টে ম্যানিফেস্টটি কী বিষয়ে কথা বলছে তা জানেন না এমন কারও জন্য এটি আপনার প্রকল্পের মূলের অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল। Eclipse এ আপনি এটিতে ডাবল ক্লিক করতে পারেন এবং এক্সএমএল সরাসরি সম্পাদনা করতে ডানদিকের ডানদিকে ট্যাবটি ক্লিক করতে পারেন।
অস্টিন মাহুনি

3
দুর্দান্ত ধন্যবাদ সুতরাং এর চাইল্ড নোডগুলির সাথে সেই অভিপ্রায়-ফিল্টার নোডকে অন্তর্ভুক্ত করে, এটি অ্যাপ্লিকেশন শুরু হওয়ার সাথে সাথে লোড করা প্রথম যে কোনও কার্যকলাপে তৈরি করে?
কাইল

4
@ কাইল এটির সেই ক্রিয়াকলাপটি লঞ্চার পৃষ্ঠায় প্রদর্শিত হবে, আপনি হোমস্ক্রিনে একাধিক আইকন সরবরাহ করে এই অভিপ্রায়-ফিল্টার সহ একাধিক ক্রিয়াকলাপ করতে পারেন।
নাথান শোয়ারম্যান

3
আপনি এই লাইনটি উল্লেখ করেছেন "আপনি আসলে আপনার অ্যাপ্লিকেশন ম্যানিফেস্টে নির্দিষ্ট করে একাধিক লঞ্চার ক্রিয়াকলাপও রাখতে পারেন"। আমাদের একাধিক ক্রিয়াকলাপ থাকলে প্রথমে কোন কার্যক্রম শুরু হবে
তোফিক আহমেদ

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

91

আপনার প্রকল্পের মূল ফোল্ডারে অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল এ যান এবং আপনি প্রথমে কার্যকর করতে চান এমন ক্রিয়াকলাপের নামটি পরিবর্তন করুন।

উদাহরণ:

<activity android:name=".put your started activity name here"
          android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

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

47

আপনি যদি অ্যান্ড্রয়েড স্টুডিও ব্যবহার করছেন এবং আপনি আগে আর একটি ক্রিয়াকলাপ প্রবর্তন করতে পারে ।

ক্লিক করুন Run > Edit configurationএবং তারপরে নিশ্চিত করুন যে লঞ্চের ডিফল্ট ক্রিয়াকলাপটি নির্বাচিত হয়েছে।

ডিফল্ট ক্রিয়াকলাপ চালু করুন


অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএলে যদি লঞ্চারের জন্য কোনও উদ্দেশ্য ফিল্টার না থাকে তবে এটিই সমাধান।
আমির ফাজওয়ান

1
এটি গ্রহণের ক্ষেত্রেও প্রযোজ্য। কেবলমাত্র উদ্দিষ্ট ফিল্টারগুলি উল্লেখ করা যথেষ্ট নয়। অভিযুক্ত ফিল্টারগুলি ব্যবহার করা হয় যদি APK ব্যবহারকারীর দ্বারা সরাসরি সম্পাদন করা হয় তবে যদি APKটি Eclipse দ্বারা কার্যকর করা হয়, এটি ইনস্টল করে তবে একটি নির্দিষ্ট ক্রিয়াকলাপ চালু করার চেষ্টা করে। এই নির্দিষ্ট কার্যকলাপটি "প্রকল্পের বৈশিষ্ট্যগুলিতে" (প্রকল্পে ডান ক্লিক করুন) -> রান / ডিবাগ সেটিংসে নির্দিষ্ট করা আছে in
ইকার জামারদো জুগাজা

এটা চমৎকার! টিপটির জন্য ধন্যবাদ
রাফায়েল অলিভিরা

30
 <application
    android:icon="@drawable/YOUR_ICON"    <!-- THIS ICON(IMAGE) WILL BE SHOWN IN YOUR APPS -->
    android:label="MY APP NAME " >    <!-- HERE LABEL(APP NAME) -->
    <activity
        android:name=".application's starting activity"  <!-- (.)dot means current dir, if your activity is in another package then give full package name ex: com.xxx.Activity  -->
        android:label="LABEL FOR ACTIVITY "
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

18

নীচের নির্দেশাবলী অনুসরণ করুন:

1 :) আপনার খুলুন AndroidManifest.xml ফাইল ।

2 :) নীচের মতো আপনার মূল ক্রিয়াকলাপটি তৈরি করতে চান এমন ক্রিয়াকলাপটিতে যান।

যেমন আমি স্প্ল্যাশস্ক্রিনটিকে মূল ক্রিয়াকলাপ হিসাবে তৈরি করতে চাই

<activity
    android:name=".SplashScreen"
    android:screenOrientation="sensorPortrait"
    android:label="City Retails">
</activity>

3 :) এখন ক্রিয়াকলাপ ট্যাগের মধ্যে নীচের কোডটি অনুলিপি করুন:

<activity
    android:name=".SplashScreen"
    android:screenOrientation="sensorPortrait"
    android:label="City Retails">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

এবং সন্ধান করুন যে সদ্য যুক্ত হওয়া লাইনগুলি অন্যান্য ক্রিয়াকলাপের ট্যাগের সাথে সংযুক্ত নেই।


17

এই স্থির করা সহজ।

  • লঞ্চার ক্রিয়াকলাপের পরিবর্তনগুলি ডিবাগ কনফিগারেশনেও সঞ্চয় করা হয়
  • যাও Run > Debug Configurations এবং সেটিংস সম্পাদনা করুন।
  • ইন্টেলিজেও একই ধরণের সেটিংটি Run > Edit Configurationsনির্বাচিত রান ডিফল্ট ক্রিয়াকলাপের অধীনে রয়েছে এবং এটি আর এই ফ্যাশনে সেটিংসটি সংরক্ষণ করবে না।

14

ইহা সাধারণ. আপনার Manifestফাইলে এটি করুন।

<activity
    android:name="Your app name"
    android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
</activity>

1
আপনাকে <বিভাগের অ্যান্ড্রয়েড: নাম = "android.intent.category.HOME" />
Behrouz.M

2
<category android:name="android.intent.category.DEFAULT" />, এটাই এখানে কাজ করে
1111161171159459134

1
android.intent.category.HOMEকিওস্ক-মোড স্টাইল অ্যাপ্লিকেশনটিতে ব্যবহারের জন্য, যেখানে ডিফল্ট লঞ্চারটি প্রতিস্থাপন করা হয়। লঞ্চারটি প্রতিস্থাপন না করে এটি ব্যবহার করার ফলে সিস্টেমউআইটি শুরু হওয়ার সময় কোন লঞ্চারটি ব্যবহার করা উচিত তা জিজ্ঞাসা করবে। এছাড়াও দেখুন: stackoverflow.com/questions/22911156/...
CJBS


5

কেবল আপনার অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল ফাইলে যান এবং নীচের মত যুক্ত করুন

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

তারপরে আপনার অ্যান্ড্রয়েড প্রকল্পটি সংরক্ষণ এবং পরিচালনা করুন।


3

আপনি android:exported="true"মেনিফেস্ট ফাইলে এই জাতীয় কার্যকলাপ চালু করতে চান এটি যুক্ত করুন

 <activity
      android:name=".activities.activity.MainActivity"
      android:windowSoftInputMode="adjustPan"
      android:exported="true"/>
  <activity

এই ক্রিয়াকলাপের জাভা ফাইলটি খুলুন এবং ডান ক্লিক করুন তারপরে 'মূল ক্রিয়াকলাপ' এ ক্লিক করুন

অথবা

এই ক্রিয়াকলাপের জাভা ফাইলটি খুলুন এবং Ctrl+ Shift+ টিপুন F10


এর কী প্রভাব আছে? সবে চালু হচ্ছে?
চিয়া ইয়ংকাং

2

সাম্প্রতিক প্রকল্পে আমি AndroidManLive.xML এ ডিফল্ট ক্রিয়াকলাপটি এর সাথে পরিবর্তন করেছি:

<activity android:name=".MyAppRuntimePermissions">
</activity>

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

অ্যান্ড্রয়েড স্টুডিওতে 3.6; এই ভাঙ্গা মনে হচ্ছে। আমি এই প্রযুক্তিটি উদাহরণস্বরূপ অ্যাপ্লিকেশনগুলিতে ব্যবহার করেছি, তবে আমি যখন এটি বাস্তব-বাস্তব অ্যাপ্লিকেশনটিতে ব্যবহার করি তখন এটি সমতল হয়। আইডিই আবার রিপোর্ট করেছে:

অ্যাপটি চালাতে ত্রুটি: ডিফল্ট ক্রিয়াকলাপ খুঁজে পাওয়া যায় নি।

আইডিই এখনও সরঞ্জামদণ্ডে "অ্যাপ্লিকেশন চালান" স্পেসে একটি কনফিগারেশন ত্রুটি দেখিয়েছে (এই স্ক্রিনশটের হলুদ তীর)

"রান অ্যাপ" কনফিগারেশনে ত্রুটি

এই ত্রুটিটি সংশোধন করার জন্য আমি প্রকল্পটির বেশ কয়েকটি পুনর্নির্মাণ চেষ্টা করেছি এবং শেষ পর্যন্ত >> >> "ক্যাশে / পুনরায় চালু করুন" ফাইল করুন । এটি কোনও উপকারে আসেনি। অ্যাপ্লিকেশনটি চালাতে আমাকে "কনফিগারেশন সম্পাদনা" করতে হয়েছিল এবং ডিফল্ট ক্রিয়াকলাপের পরিবর্তে নির্দিষ্ট ক্রিয়াকলাপটি নির্দেশ করতে হয়েছিল:

কনফিগারেশন ডায়ালগ বক্স সম্পাদনা করুন

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