অ্যান্ড্রয়েড অ্যাপ্লিকেশন ক্লাসটি কেন বাড়িয়ে দিন?


168

একটি বর্ধিত Applicationশ্রেণি বিশ্বব্যাপী ভেরিয়েবল ঘোষণা করতে পারে। অন্যান্য কারণ আছে?


এটি আমার মাথার উপরের অংশ থেকে সবেমাত্র একটি ধারণা, তবে আপনি অনক্রিটকে ওভাররাইড করতে এবং মেইনএকটিভিটির চেয়ে একবারের শুরুতে পর্দা প্রদর্শন করতে সক্ষম হবেন, অর্থাত্ ব্যবহারকারী প্রথমবার অ্যাপটি খোলার আগে একটি ইন্ট্রো স্ক্রিন প্রদর্শন করবে।
বিটিএস

উত্তর:


29

অফহ্যান্ড, আমি এমন বাস্তব দৃশ্যের কথা ভাবতে পারি না যেখানে অ্যাপ্লিকেশন প্রসারিত করা হয় অন্য পদ্ধতির চেয়ে পছন্দনীয় বা কোনও কিছু সম্পাদনের জন্য প্রয়োজনীয়। আপনার যদি কোনও ব্যয়বহুল, ঘন ঘন ব্যবহৃত অবজেক্ট থাকে তবে আপনি সনাক্ত করতে পারেন যে বস্তুটি বর্তমানে উপস্থিত নেই। অ্যাপ্লিকেশনটি নিজেই ইউআই থ্রেডে চালিত হয়, যখন ইনটেন্ট সার্ভিস নিজস্ব থ্রেডে চালিত হয়।

আমি ক্রিয়াকলাপ থেকে স্পষ্টত ইন্টেন্টের সাথে ক্রিয়াকলাপে ডেটা পাস করতে পছন্দ করি, বা SharedPreferences ব্যবহার করি। ইন্টারফেসগুলি ব্যবহার করে একটি খণ্ড থেকে তার পিতামাতার ক্রিয়াকলাপে ডেটা পাঠানোর উপায় রয়েছে।


39
বর্ধিত অ্যাপ্লিকেশন ক্লাসের অনেকগুলি ব্যবহার রয়েছে। খুব কার্যকর একটি হ'ল আপনার আবেদনে সমস্ত অপ্রকাশিত ব্যতিক্রম ধরা। সুতরাং এটি এমন কিছু যা খুব সহজ হতে পারে
png

3
তুমি এটা কিভাবে করলে ?
serj

8
+1 এর জন্য "prefer to pass data from Activity to Activity with explicit Intents, or use SharedPreferences"। আমাদের সর্বদা গ্লোবাল রাষ্ট্রকে যতটা সম্ভব আমরা মুছে ফেলা উচিত এবং স্ট্যাটিক ওয়ার /
সিঙ্গেলন

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

127

পরিচিতি:

এখানে চিত্র বর্ণনা লিখুন

  1. আমরা যদি apkআমাদের মোবাইলে কোনও ফাইল বিবেচনা করি তবে এটিতে একাধিক দরকারী ব্লক যেমন, Activityএস, Serviceএস এবং অন্যান্য রয়েছে।
  2. এই উপাদানগুলি একে অপরের সাথে নিয়মিত যোগাযোগ করে না এবং ভুলে যাবেন না যে তাদের নিজস্ব জীবন চক্র রয়েছে। যা নির্দেশ করে যে তারা এক সময় সক্রিয় থাকতে পারে এবং অন্য মুহূর্তে নিষ্ক্রিয় থাকতে পারে।

প্রয়োজনীয়তা:

  1. কখনও কখনও আমাদের এমন একটি দৃশ্যের প্রয়োজন হতে পারে যেখানে ব্যবহারকারীর ব্যবহার Applicationনির্বিশেষে আমাদের একটি ভেরিয়েবল এবং এর রাজ্যগুলি অ্যাক্সেস করতে হবে Activity,
  2. একটি উদাহরণ হ'ল কোনও ব্যবহারকারীর এমন কোনও ভেরিয়েবল অ্যাক্সেসের প্রয়োজন হতে পারে যা তার কর্মীদের তথ্য (যেমন নাম) ধারণ করে যা সমগ্র জুড়ে অ্যাক্সেস করতে হবে Application,
  3. আমরা এসকিউএলাইট ব্যবহার করতে পারি তবে একটি তৈরি করা Cursorএবং এটিকে বারবার বন্ধ করা পারফরম্যান্সে ভাল নয়,
  4. আমরা Intentডেটা পাস করার জন্য গুলি ব্যবহার করতে পারি তবে এটিকে আনাড়ি এবং মেমরির উপলব্ধতার উপর নির্ভর করে কোনও নির্দিষ্ট দৃশ্যে কার্যকলাপ নিজেই উপস্থিত থাকতে পারে।

প্রয়োগ শ্রেণীর ব্যবহার:

  1. সম্পূর্ণরূপে ভেরিয়েবলের অ্যাক্সেস Application,
  2. আপনি ব্যবহার করতে পারেন Applicationবিশ্লেষণ ইত্যাদি কিছু শুরু করার পর থেকে আবেদন বর্গ সামনে শুরু হয় Activitys অথবা Servicesগুলি চালানো হচ্ছে হয়,
  3. OnConfigrationChanged () নামে একটি ওভাররাইড পদ্ধতি রয়েছে যা অ্যাপ্লিকেশন কনফিগারেশনটি পরিবর্তিত হয়ে গেলে (অনুভূমিক এবং উল্টোদিকে উল্লম্ব) পরিবর্তন করা হয়,
  4. অ্যানড্রয়েড ডিভাইস স্মৃতিশক্তি কম থাকাকালীন অন-লাউ মেমোরি () নামে একটি ইভেন্ট রয়েছে।

আপনার প্রয়োজনীয় অংশে, কেন SharedPreferences ব্যবহার করবেন না?

ব্যক্তিগত ইনফোগুলি সংরক্ষণের মতো প্রথম উদাহরণে, ভাগ করা অগ্রাধিকারগুলি ব্যবহার করা যেতে পারে। তবে আপনি শেষ অংশে যে উদাহরণ দিয়েছেন তা আমার সন্দেহগুলি পরিষ্কার করেছে। ধন্যবাদ!
সৌরভ সিং 13

63

অ্যাপ্লিকেশন শ্রেণি হল এমন একটি জিনিস যা আপনার আবেদনের পুরো জীবনকোষ রয়েছে। এটি অ্যাপ্লিকেশন হিসাবে আপনার সর্বোচ্চ স্তর। সম্ভাব্য ব্যবহারের উদাহরণ:

  • অ্যাপ্লিকেশন ক্লাসে অনক্রিটকে ওভাররাইড করে যখন অ্যাপ্লিকেশন শুরু করা হয় তখন আপনি যা প্রয়োজন তা যুক্ত করতে পারেন।

  • ক্রিয়াকলাপ থেকে ক্রিয়াকলাপে লাফানো বৈশ্বিক পরিবর্তনশীলগুলি সঞ্চয় করুন। অ্যাসিঙ্কটাস্কের মতো।

    ইত্যাদি


4
অ্যাপ্লিকেশন-গ্লোবাল ভেরিয়েবলগুলির জন্য ডাম্পিং গ্রাউন্ড হিসাবে অ্যাপ্লিকেশনটি ব্যবহার করা বড় কোডের গন্ধ। এটি সম্পাদন করার জন্য আপনার নিজস্ব কাস্টম, সুনিলেট বা স্ট্যাটিক ভেরিয়েবল সহ আরও নির্দিষ্ট ক্লাস ব্যবহার করা উচিত।
অস্টিন

5
@ অস্টিন কেন এটি গন্ধযুক্ত?
রিলম করুন

1
হ্যাঁ, কেন গন্ধ? যেমন আগেই বলা হয়েছে, অ্যাপ্লিকেশন ক্লাস হায়ারার্কির শীর্ষে রয়েছে এবং আমি আমার মধ্যাহ্নভোজের টাকায় বাজি ধরতে পারি যে কাস্টম সিঙ্গলটন ক্লাস এর নীচে রয়েছে। সুতরাং, যদি ধাক্কাটি আসে এবং আপনার ফোনের মেমোরি কম থাকে তবে আমি বলব যে অ্যাপ্লিকেশন ক্লাসের পরিবর্তে কাস্টম সিঙ্গলটন হ'ল প্রথম ব্যক্তি, যা মূলত আপনার পুরো অ্যাপ্লিকেশন।
স্টারওয়েভ

31

কখনও কখনও আপনি বিশ্বব্যাপী ভেরিয়েবলগুলির মতো ডেটা সঞ্চয় করতে চান যা একাধিক ক্রিয়াকলাপ থেকে অ্যাক্সেস করা প্রয়োজন - কখনও কখনও অ্যাপ্লিকেশনের মধ্যে সর্বত্র। এই ক্ষেত্রে, অ্যাপ্লিকেশন অবজেক্ট আপনাকে সহায়তা করবে।

উদাহরণস্বরূপ, আপনি যদি প্রতিটি http অনুরোধের জন্য বেসিক প্রমাণীকরণ ডেটা পেতে চান , আপনি অ্যাপ্লিকেশন অবজেক্টে প্রমাণীকরণ ডেটার জন্য পদ্ধতিগুলি প্রয়োগ করতে পারেন।

এর পরে, আপনি এর মতো যে কোনও কার্যকলাপে ব্যবহারকারীর নাম এবং পাসওয়ার্ড পেতে পারেন:

MyApplication mApplication = (MyApplication)getApplicationContext();
String username = mApplication.getUsername();
String password = mApplication.getPassword();

এবং পরিশেষে, অ্যাপ্লিকেশন অবজেক্টটি সিঙ্গলটন অবজেক্ট হিসাবে ব্যবহার করতে ভুলবেন না:

 public class MyApplication extends Application {
    private static MyApplication singleton;

    public MyApplication getInstance(){
        return singleton;
    }
    @Override
    public void onCreate() {
        super.onCreate();
        singleton = this;
    }
}

আরও তথ্যের জন্য, দয়া করে অ্যাপ্লিকেশন ক্লাস ক্লিক করুন


2
দয়া করে আমাকে এটি ব্যাখ্যা করুন, কেন আমাদের স্পষ্টভাবে একটি অ্যাপ্লিকেশন ক্লাসের সিঙ্গলটন অবজেক্ট তৈরি করা দরকার, যতদূর আমি জানি এটি নিজেই সিঙ্গলটন। আমরা কি একাধিক অ্যাপ্লিকেশন অবজেক্ট তৈরি করতে পারি, যদি পারি, তবে কীভাবে? এবং এর পরিণতি কী? দয়া করে ব্যাখ্যা করুন।
সৈয়দ রাজা মেহেদী

না, সম্ভবত কেবলমাত্র একটি অ্যাপ্লিকেশন ক্লাস। বিকাশকারী.অ্যান্ড্রয়েড / গাইড
টপিক্স

তাহলে আমাদের কেন এটির সিঙ্গলটন অবজেক্টটি স্পষ্টভাবে বজায় রাখা দরকার? ওএস কি আমাদের জন্য এটি রক্ষণাবেক্ষণ করে না? আসলে আমি এমন একটি কোডের মুখোমুখি হয়েছি যেখানে ক্রিয়াকলাপ শ্রেণিতে তৈরি একটি অ্যাপ্লিকেশন অবজেক্ট রয়েছে এবং এটি ম্যানিফেস্টে উল্লেখ করা হচ্ছে না। আমি মনে করি এটি ভুল, এছাড়াও আমি কৌতূহল বোধ করি কেন আমরা স্থির সিঙ্গলটন অবজেক্ট তৈরি করছি। আপনি যা মনে করেন এটি সর্বোত্তম পন্থা। জবাব দেওয়ার জন্য ধন্যবাদ
সৈয়দ রাজা মেহেদী

1
ধন্যবাদ আমি এই লিঙ্কে এখানে আমার উত্তর পাওয়া developer.android.com/reference/android/app/Application.html
সৈয়দ রাজা মেহেদী


8

অ্যাপ্লিকেশন ক্লাসটি এমন একটি একক যা আপনি যে কোনও ক্রিয়াকলাপ বা অন্য কোথাও আপনার প্রসঙ্গ অবজেক্ট থেকে অ্যাক্সেস করতে পারবেন।

আপনিও কিছুটা জীবনচক্র পেতে পারেন।

আপনি ব্যয়বহুল, তবে অ্যানালিটিক্স সহায়ক হিসাবে প্রায়শই ব্যবহৃত বস্তুগুলি ইনস্ট্যান্ট করতে অ্যাপ্লিকেশনটির অনক্রিট পদ্ধতিটি ব্যবহার করতে পারেন। তারপরে আপনি এই আইটেমগুলিকে যে কোনও জায়গায় অ্যাক্সেস করতে এবং ব্যবহার করতে পারবেন।


6
"আপনিও কিছুটা জীবনচক্র পেতে পারেন।" আপনি এটি উদ্ধৃত করতে চাইতে পারেন।
wtsang02

2
আমি আপনাকে কিছু লাইফাইসাইকাল কল পেতে চাইছি, তবে কোনও কার্যকলাপ বা খণ্ড খণ্ডের মতো নয়। উদাহরণস্বরূপ, অ্যাপ্লিকেশন ক্লাসের জন্য কোনও onDestroy () নেই।
জন এফ হ্যানকক

এই শ্রেণীর স্বয়ংক্রিয়তা তৈরি হয়?
কনস্ট্যান্টিন কনোপকো

হ্যাঁ. যতক্ষণ আপনি এটি আপনার AndroidManLive.xML এ সঠিকভাবে উল্লেখ করবেন।
জন এফ হ্যানকক

না, এটি স্বয়ংক্রিয়ভাবে তৈরি হয় না You আপনাকে এটি তৈরি করতে হবে এবং তারপরে এটি আপনার প্রকাশিত ফাইলে ঘোষণা করতে হবে
ওজনুগা জুড ওচালিফু

7

অ্যাপ্লিকেশন ক্লাসের সেরা ব্যবহার। উদাহরণ: ধরুন আপনার বুট সম্পন্ন হওয়ার সময় আপনার অ্যালার্ম ম্যানেজারটি পুনরায় চালু করতে হবে।

public class BaseJuiceApplication extends Application implements BootListener {

    public static BaseJuiceApplication instance = null;

    public static Context getInstance() {
        if (null == instance) {
            instance = new BaseJuiceApplication();
        }
        return instance;
    }

    @Override
    public void onCreate() {
        super.onCreate();


    }

    @Override
    public void onBootCompleted(Context context, Intent intent) {
        new PushService().scheduleService(getInstance());
        //startToNotify(context);
    }

আমি ভাবছি কেন আমাদের অ্যাপ্লিকেশন অবজেক্টের স্থিতিশীল রেফারেন্স তৈরি করতে হবে, যেখানে আমরা এটি getapplication () ব্যবহার করে অ্যাপ্লিকেশন ক্লাসে টাইপকাস্ট করতে পারি। যতদূর আমি এই ধারণাটি বুঝতে পেরেছি যে অ্যাপ্লিকেশন ক্লাসটি ওএস নিজেই তৈরি করেছে এবং এর কেবল একটি উদাহরণ থাকা উচিত যা ওএস দ্বারা রক্ষণাবেক্ষণ করা হয়। দয়া করে ব্যাখ্যা করুন, ধন্যবাদ।
সৈয়দ রাজা মেহেদী

আপনি ঠিক বলেছেন। আপনার অ্যাপ্লিকেশনটিতে যে কোনও অ্যাপ্লিকেশন উপাদান থেকে গেট অ্যাপ্লিকেশনকে কল করা আপনার অ্যাপ্লিকেশনটির একক অ্যাপ্লিকেশন-প্রাপ্ত উদাহরণটি দেয়। এটি অ্যান্ড্রয়েড ফ্রেমওয়ার্ক দ্বারা অভ্যন্তরীণভাবে পরিচালনা করা হয়। আপনাকে যা করতে হবে তা হ'ল অ্যাপ্লিকেশন প্রসারিত আপনার কাস্টম শ্রেণিতে উদাহরণ ফিরে আসে। আপনার যথাযথ শ্রেণিটি অ্যানড্রয়েড ফ্রেমওয়ার্ক দ্বারা উদাহরণটি ইনস্ট্যান্ট করতে ব্যবহার করা হবে according
ম্যাট ওয়েলক

5

কোনও উত্তর নয় তবে একটি পর্যবেক্ষণ : মনে রাখবেন যে বর্ধিত অ্যাপ্লিকেশন অবজেক্টের ডেটা কোনও ক্রিয়াকলাপের উদাহরণের সাথে বেঁধে রাখা উচিত নয়, কারণ আপনার একই সময়ে একই ক্রিয়াকলাপের দুটি ঘটনা চলার সম্ভাবনা রয়েছে (একটিতে এটি পুরোভাগে এবং এক দৃশ্যমান নয়)

উদাহরণস্বরূপ, আপনি লঞ্চের মাধ্যমে আপনার কার্যকলাপটি সাধারণত শুরু করেন, তারপরে এটি "ছোট করুন" ize এরপরে আপনি আর একটি অ্যাপ্লিকেশন (অর্থাত্ টাস্কার) শুরু করেন যা আপনার অ্যাক্টিভিটিটির আরেকটি উদাহরণ শুরু করে, উদাহরণস্বরূপ একটি শর্টকাট তৈরি করার জন্য, কারণ আপনার অ্যাপ্লিকেশনটি android.intent.action.CREATE_SHORTCUT সমর্থন করে। এরপরে যদি শর্টকাটটি তৈরি হয় এবং এই শর্টকাট তৈরির ক্রিয়াকলাপটি অ্যাপ্লিকেশন অবজেক্টের ডেটা সংশোধন করে, তবে ব্যাকগ্রাউন্ডে চলমান ক্রিয়াকলাপটি পূর্বের পৃষ্ঠায় ফিরে আসার পরে এই পরিবর্তিত অ্যাপ্লিকেশন অবজেক্টটি ব্যবহার করা শুরু করবে।


4

আমি দেখতে পাচ্ছি যে এই প্রশ্নের একটি উত্তর অনুপস্থিত। আমি প্রসারিত করি Applicationকারণ আমি বিল পুঘ সিঙ্গলটন বাস্তবায়ন ( রেফারেন্স দেখুন ) ব্যবহার করি এবং আমার কিছু সিলেটটনের প্রসঙ্গ প্রয়োজন। Applicationভালো বর্গ দেখায়:

public class MyApplication extends Application {

    private static final String TAG = MyApplication.class.getSimpleName();

    private static MyApplication sInstance;

    @Contract(pure = true)
    @Nullable
    public static Context getAppContext() {
        return sInstance;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        Log.d(TAG, "onCreate() called");
        sInstance = this;
    }
}

এবং সিঙ্গলেটগুলি দেখতে এটির মতো:

public class DataManager {

    private static final String TAG = DataManager.class.getSimpleName();

    @Contract(pure = true)
    public static DataManager getInstance() {
        return InstanceHolder.INSTANCE;
    }

    private DataManager() {
        doStuffRequiringContext(MyApplication.getAppContext());
    }

    private static final class InstanceHolder {
        @SuppressLint("StaticFieldLeak")
        private static final DataManager INSTANCE = new DataManager();
    }
}

আমি যখনই সিঙ্গলটন ব্যবহার করি তখন প্রতিবার আমার প্রসঙ্গ থাকার দরকার হয় না এবং ন্যূনতম পরিমাণ কোডের সাথে অলস সিঙ্ক্রোনাইজড আরম্ভ হয়।

টিপ: অ্যান্ড্রয়েড স্টুডিও একক টেমপ্লেট আপডেট করা অনেক সময় সাশ্রয় করে।


3

আমি মনে করি আপনি অ্যাপ্লিকেশন ক্লাসটি অনেক কিছুর জন্য ব্যবহার করতে পারেন, তবে আপনার যে কোনও ক্রিয়াকলাপ বা পরিষেবা শুরু হওয়ার আগে সেগুলি আপনার প্রয়োজনীয় কিছু কিছুতে আবদ্ধ। উদাহরণস্বরূপ, আমার অ্যাপ্লিকেশনটিতে আমি কাস্টম ফন্ট ব্যবহার করি। কল করার পরিবর্তে

Typeface.createFromAsset()

অ্যাসেটস ফোল্ডার থেকে আমার ফন্টগুলির জন্য রেফারেন্স পেতে প্রতিটি ক্রিয়াকলাপ থেকে (এটি খারাপ কারণ এটি মেমরি ফুটো হওয়ার কারণ হবে যখন আপনি যখন এই পদ্ধতিটি কল করবেন তখন যতবার সম্পত্তির রেফারেন্স রাখছেন), আমি onCreate()আমার অ্যাপ্লিকেশন ক্লাসের পদ্ধতি থেকে এটি করি :

private App appInstance;
Typeface quickSandRegular;
...
public void onCreate() {
    super.onCreate();

    appInstance = this;
    quicksandRegular = Typeface.createFromAsset(getApplicationContext().getAssets(),
                       "fonts/Quicksand-Regular.otf");
   ...
   }

এখন, আমারও এই পদ্ধতিটি সংজ্ঞায়িত করা হয়েছে:

public static App getAppInstance() {
    return appInstance;
}

এবং এই:

public Typeface getQuickSandRegular() {
    return quicksandRegular;
}

সুতরাং, আমার আবেদনের যে কোনও জায়গা থেকে আমাকে যা করতে হবে তা হ'ল:

App.getAppInstance().getQuickSandRegular()

আমার জন্য অ্যাপ্লিকেশন ক্লাসের জন্য আরেকটি ব্যবহার হ'ল ডিভাইসটি ইন্টারনেটের সাথে সংযুক্ত কিনা তা আগে যাচাই করা দরকার যা কার্যক্রম এবং পরিষেবাগুলির আগে সংযোগের প্রয়োজন হয় যা আসলেই শুরু হয় এবং প্রয়োজনীয় ব্যবস্থা গ্রহণ করে।


1
ভাল বলেছ. খুব ভাল ভাঙ্গা।
ওলুওয়াতোবি আদেনেকান

3

উত্স: https://github.com/codepath/android_guides/wiki/Unders বোঝা- অ্যান্ড্রয়েড- অ্যাপ্লিকেশন- ক্লাস

অনেক অ্যাপে সরাসরি অ্যাপ্লিকেশন শ্রেণির সাথে কাজ করার দরকার নেই। তবে কাস্টম অ্যাপ্লিকেশন শ্রেণীর কয়েকটি গ্রহণযোগ্য ব্যবহার রয়েছে:

  • বিশেষ কাজগুলি যা আপনার প্রথম ক্রিয়াকলাপটি তৈরির আগে চালানো দরকার
  • গ্লোবাল ইনিশিয়ালাইজেশন যা সমস্ত উপাদানগুলিতে ভাগ করা দরকার (ক্র্যাশ রিপোর্টিং, অধ্যবসায়)
  • স্থায়ী অপরিবর্তনীয় ডেটা যেমন ভাগ করা নেটওয়ার্ক ক্লায়েন্ট অবজেক্টের সহজে অ্যাক্সেসের জন্য স্ট্যাটিক পদ্ধতি

অ্যাপ্লিকেশন অবজেক্টের মধ্যে আপনার কখনই পরিবর্তনীয় উদাহরণ ডেটা সংরক্ষণ করা উচিত নয় কারণ আপনি যদি ধরে নেন যে আপনার ডেটা সেখানেই থেকে যাবে তবে আপনার অ্যাপ্লিকেশনটি কোনও সময়ে নালপয়েন্টার এক্সসেপশন সহ অনিবার্যভাবে ক্রাশ হবে। অ্যাপ্লিকেশন অবজেক্টটি চিরতরে স্মৃতিতে থাকার গ্যারান্টিযুক্ত নয়, এটি মারা যাবে। জনপ্রিয় বিশ্বাসের বিপরীতে, অ্যাপটি স্ক্র্যাচ থেকে পুনরায় আরম্ভ হবে না। অ্যান্ড্রয়েড একটি নতুন অ্যাপ্লিকেশন অবজেক্ট তৈরি করবে এবং সেই অ্যাপ্লিকেশনটিকে প্রথম স্থানে হত্যা করা হয়নি এমন ধারণা দেয়ার আগে ব্যবহারকারীরা এমন কার্যকলাপ শুরু করবে।


1

অ্যাপ্লিকেশন দ্বারা প্রসারিত হলে আপনি অবজেক্ট তৈরি না করে যে কোনও শ্রেণিতে ভেরিয়েবল অ্যাক্সেস করতে পারবেন। এগুলিকে বিশ্বব্যাপী ডাকা যেতে পারে এবং প্রয়োগ না মেরে তাদের রাজ্য বজায় থাকে।


1

প্রসারিত অ্যাপ্লিকেশনটির ব্যবহার আপনার অ্যাপ্লিকেশন চলমান সময়কালে আপনার যে কোনও প্রকারের ক্রিয়াকলাপের জন্য কেবল আপনার অ্যাপ্লিকেশনটিকে নিশ্চিত করে। এখন এটি কোনও ধরণের ভেরিয়েবল হতে পারে এবং ধরুন আপনি যদি সার্ভার থেকে কিছু তথ্য আনতে চান তবে আপনি আপনার অ্যাসিনটাস্কটিকে প্রয়োগ করতে পারেন যাতে এটি প্রতিটি সময় এবং অবিচ্ছিন্নভাবে আসে, যাতে আপনি স্বয়ংক্রিয়ভাবে একটি আপডেট হওয়া ডেটা পাবেন .. এই লিঙ্কটি ব্যবহার করুন আরও জ্ঞানের জন্য ....

http://www.intridea.com/blog/2011/5/24/how-to-use-application-object-of-android


এটি কোনও থ্রেড নয়, সুতরাং "আপনার অ্যাপ্লিকেশন চলমান সময়কালে আপনি যে কোনও ধরণের ক্রিয়াকলাপ চান" " সত্য না.
লাসি কিনুনুনেন

1

অন্যান্য উত্তরের সাথে যুক্ত করে বলা হয়েছে যে আপনি অ্যাপ্লিকেশন স্কোপটিতে স্টোর ভেরিয়েবলগুলি পছন্দ করতে পারেন, যে কোনও দীর্ঘমেয়াদী থ্রেড বা অন্যান্য বস্তুর জন্য যেখানে আপনার অ্যাপ্লিকেশনটির বাধ্যবাধকতা প্রয়োজন যেখানে আপনি কোনও ক্রিয়াকলাপ ব্যবহার করছেন না (অ্যাপ্লিকেশন কোনও ক্রিয়াকলাপ নয়) .. যেমন একটি বাঁধা পরিষেবাটির জন্য অনুরোধ করতে না পারা .. তারপরে অ্যাপ্লিকেশন দৃষ্টিতে বাইন্ডিং পছন্দ করা হয়। এই পদ্ধতির সাথে একমাত্র সুস্পষ্ট সতর্কতা হ'ল অ্যাপ্লিকেশন যতদিন বেঁচে থাকে ততক্ষণ অবজেক্টগুলি বেঁচে থাকে, তাই মেমরির উপর আরও অন্তর্নিহিত নিয়ন্ত্রণ প্রয়োজন অন্যথায় আপনি মেমরি-সম্পর্কিত সমস্যার মতো ফাঁসের মুখোমুখি হবেন।

অন্য যে কোনও জিনিস আপনাকে দরকারী মনে হতে পারে তা হ'ল ক্রিয়াকলাপগুলির ক্রমে, কোনও ক্রিয়াকলাপের আগে প্রথমে অ্যাপ্লিকেশনটি শুরু হয়। এই সময়সীমার মধ্যে, আপনি যদি ইচ্ছা করেন তবে আপনার প্রয়োজনীয় ক্রিয়াকলাপের আগে যে কোনও প্রয়োজনীয় গৃহকর্ম তৈরি করতে পারেন।

2018-10-19 11:31:55.246 8643-8643/: application created
2018-10-19 11:31:55.630 8643-8643/: activity created
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.