getActivity () ফ্র্যাগমেন্ট ফাংশনে বাতিল করে


191

আমার পাবলিক মেথডের মতো একটি টুকরো (এফ 1) রয়েছে

public void asd() {
    if (getActivity() == null) {
        Log.d("yes","it is null");
    }
}

এবং হ্যাঁ যখন আমি এটিকে বলি (ক্রিয়াকলাপ থেকে), তখন তা বাতিল হয় ...

FragmentTransaction transaction1 = getSupportFragmentManager().beginTransaction();
F1 f1 = new F1();
transaction1.replace(R.id.upperPart, f1);
transaction1.commit();
f1.asd();

এটি অবশ্যই এমন কিছু হতে হবে যা আমি খুব ভুল করছি, তবে আমি জানি না এটি কী


আমি নিশ্চিত নই যে আপনি যখন এই পোস্টে এটি আটকে দিয়েছেন তখন কোনও ত্রুটি হয়েছিল কিনা তবে পরে আপনার প্রথম বন্ধনী প্রয়োজন getActivity()। এছাড়াও, আপনি কীভাবে খণ্ডটি ইনস্ট্যান্ট করছেন? আপনার লেআউট.এক্সএমএলে এটি রয়েছে?
কেসিবি

দ্বিতীয় কোড খণ্ডটি কোথায় সম্পর্কিত? ক্রিয়াকলাপের পদ্ধতিটি ()? এবং আপনি ইতিমধ্যে সেট কনটেন্টভিউ () কল করেছেন?
ফ্রেঞ্চিস্কাস কারসুনকে

R.id.upperPar লেআউটের একটি উপাদান, সুতরাং এটি খণ্ডের সাথে প্রতিস্থাপন করার কথা, তবে এটি আমার সমস্যা নয়। আমি কাস্টম খণ্ড পদ্ধতিতে যখন getActivity () কল করি তখন কেন আমি নালব হয় তা আমি বুঝতে পারি না, ক্রিয়াকলাপের পদ্ধতিতে getCacated পদ্ধতিতে বলি ক্রিয়াকলাপটি আসল কার্যকলাপটি বাতিল নয়
লুকাপ

সমস্যাটি এটি লেআউটগুলিতে নয়, অ্যাপটি ভাল কাজ করে তবে কেন আমি গতিঅ্যাক্টিভিটির জন্য নালিশ করব?, বিটিডব্লিউটি সহ যে সমস্ত উপাদানটি রেন্ডার করা হয়েছে তা এখানে প্রকাশ করা উচিত নয়
লুকাপ

1
আপনার এই পদ্ধতিটি কল করা উচিত: f1.asd (); onActivityCreated পদ্ধতিতে যা আপনার খণ্ড শ্রেণিতে ওভাররাইড করা হবে।
নম্রতা বাগেরওয়াল

উত্তর:


164

commit লেনদেনের সময়সূচী দেয়, এটি সরাসরি ঘটে না তবে পরের বার মূল থ্রেড প্রস্তুত হওয়ার পরে মূল থ্রেড হিসাবে কাজ করা হবে scheduled

আমি একটি যুক্ত করার পরামর্শ দিই

onAttach(Activity activity)

আপনার টু পদ্ধতি Fragmentএবং এটি একটি বিরতি বিন্দু নির্বাণ এবং যখন এটি আপনার কল আপেক্ষিক বলা হয় এইজন্য asd()। আপনি দেখতে পাবেন যে কলটি asd()প্রস্থান করার জন্য সেই পদ্ধতির পরে সেখানে ডাকা হবে । onAttachযেখানে কল Fragmentতার কার্যকলাপ এবং এই বিন্দু থেকে সংযুক্ত করা হয় getActivity()অ নাল ফিরে আসবে (বিশেষ দ্রষ্টব্য এছাড়াও আছে একটি হল onDetach()কল)।


5
আপনি কীভাবে আপনার সমস্যার সমাধান করতে পারবেন তা আমি বুঝতে পারি নি। যদি আমার getActivity () নিখুঁতভাবে প্রস্তুত না হয় তবে আমি কীভাবে ফ্র্যাগমেন্টএকটিভিটি অবজেক্টের রেফারেন্স পেতে পারি?
সেককিউকিউ

2
@ বিবেক আপনি কী অর্জন করতে চান তা আমি যথেষ্ট জানি না। আপনার যদি সরাসরি সংলাপ প্রদর্শন করতে খণ্ডের প্রয়োজন হয় তবে এটি তৈরির জন্য যা করা দরকার তা করুন, যেমন এর onCreateViewবা onActivityCreatedপদ্ধতিতে। আমি প্রশ্ন করি যখন প্রশ্ন পোস্টিংয়ের সময় কেন এ্যাসিড () বলা দরকার।
পিজেএল

3
onAttach অবমূল্যায়ন
আব্বাসালিম

6
onAttach (ক্রিয়াকলাপ এমএসিটিভিটি) অবহেলিত বলে মনে হচ্ছে .. এটির জন্য কোনও
কর্মসূচি

4
এপিআই 24 চালু হয়েছেcommitNow()
নিকোলাস

92

এ থেকে পরিত্রাণের জন্য সর্বশ্রেষ্ঠ হ'ল অনটচ যখন ডাকা হয় তখন কার্যকলাপের রেফারেন্স রাখা এবং যেখানে প্রয়োজন সেখানে ক্রিয়াকলাপের রেফারেন্স ব্যবহার করুন, যেমন

@Override
public void onAttach(Context context) {
    super.onAttach(activity);
    mContext = context;
}

@Override
public void onDetach() {
    super.onDetach();
    mContext = null;
}

34
আমাদের কি mActivity = নাল অনডেটাচ () সেট করা উচিত?
অলিভার পিয়ারমাইন

5
@ অলিভারপায়ারমেইন যদি আপনি এটি অন ডেটাচ () এ করেন তবে কোনও লাভ হবে না। আপনাকে এটি ondestory () এ বাতিল করতে হবে। তদতিরিক্ত আপনাকে এটিকে WeakRefernce এ ধারণ করতে হবে।
কিরিল পপভ

আমি উভয় এটিকে বাতিল করে দিচ্ছি onDestroy()এবং onDetach()যেহেতু কল onDestroy()করার নিশ্চয়তা নেই।
মোহাম্মদ আলী

8
আমরা লিক হয় Activityযদি আমরা এটা খর্ব না onDestroy()?
মোহাম্মদ আলী

3
বিকাশকারী.অ্যান্ড্রয়েড .com/intl/zh-tw/guide/compferences/… এর মতে , onCreateView () কল করার আগে onAttach () বলা হয়। আমি অনক্রিট ভিউ () এ getActivity () কল করার সময় আমি এখনও একটি নালপয়েন্টার এক্সসেপশন পেয়েছি। কীভাবে তা হতে পারে?
কিমি চিউ

81

আপনি যখন getActivity()অন্য থ্রেডে কল করবেন তখন খণ্ডটি সরানোর পরে শেষ হয়েছে। আদর্শ কেস কল করছে getActivity()( উদাহরণস্বরূপ) Toastএকটি HTTP অনুরোধ শেষ হলে ( onResponseউদাহরণস্বরূপ)।

এটি এড়াতে, আপনি একটি ক্ষেত্রের নাম সংজ্ঞায়িত করতে পারেন mActivityএবং এটির পরিবর্তে এটি ব্যবহার করতে পারেন getActivity()। এই ক্ষেত্রটি খন্ড খণ্ডের অনটাক () পদ্ধতিতে সূচনা করা যেতে পারে:

@Override
public void onAttach(Context context) {
    super.onAttach(context);

    if (context instanceof Activity){
        mActivity =(Activity) context;
    }
}

আমার প্রকল্পগুলিতে, আমি সাধারণত এই বৈশিষ্ট্যটি সহ আমার সমস্ত খণ্ডগুলির জন্য একটি বেস শ্রেণি সংজ্ঞায়িত করি:

public abstract class BaseFragment extends Fragment {

    protected FragmentActivity mActivity;

    @Override
public void onAttach(Context context) {
    super.onAttach(context);

    if (context instanceof Activity){
        mActivity =(Activity) context;
    }
}
}

শুভ কোডিং,


19
আমরা কি এমএসিটিভিটি সেট করব = নাল; onDetach () এ?
ভারত দোদেজা

থুকনগুয়েইন, কীভাবে একক ক্রিয়াকলাপ অ্যাপের জন্য এমএটিভিটি স্থিতির ঘোষণা করবেন?
iamthevoid

আমি Activityঅন্য থ্রেড থেকে মোটেও অ্যাক্সেস পাওয়ার কারণ দেখছি না । আপনি এটি দিয়ে যাইহোক কিছু করতে পারবেন না, এমনকি টোস্টটিও দেখান না। সুতরাং আপনার হয় প্রথমে কাজটি মূল থ্রেডে স্থানান্তর করা উচিত, বা কার্যকলাপটি মোটেই ব্যবহার করা উচিত নয়।
Dzmitry Lazerka

4
@ ভরতডোদেজা কি আমাদের এমএকিটিভিটি সেট করতে হবে = অনডট্যাচ? আপনি কি খুঁজে পেয়েছেন?
স্লিয়ারার

5
ক্রিয়াকলাপ বাতিল না করেই এটি ফাঁস হয়ে যাচ্ছে।
দারেক দেওনিজিয়াক

30

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


1
এটা ঠিক আমার সমস্যা। আমার একটি খণ্ড রয়েছে যা একটি প্রক্রিয়া করে -> তারপরে একটি বিজ্ঞাপন দেখানো হয় -> এবং তারপরে প্রসেসটি অবিরত থাকে। বিজ্ঞাপন থেকে ফিরে কিছু ডিভাইসে (বিজ্ঞাপনের শ্রোতার মাধ্যমে) getActivity () বাতিল হয় ull তবে কাজ শেষ করার জন্য আমার অন্য অংশটি চালিয়ে যাওয়া প্রয়োজন need আপনি কি বোঝাতে চাইছেন এর কোনও সমাধান নেই?
নোটবাদ

ঠিক এটাই আমার মুখোমুখি। আমার একটি খণ্ডে একটি ক্রিয়াকলাপ ইন্টারফেস রয়েছে যেখানে আমি কিছু বিলিং কাজ করি। পেমেন্ট সম্পন্ন হওয়ার পরে, আমি ইন্টারফেসটি কিছু করতে চাই, তবে ইন্টারফেসটি শূন্য হয়েছে।
ফ্রেডি

এটি এই বিষয়টির 100 টি এসও প্রশ্নের সঠিক জবাব বলে মনে হচ্ছে।
ম্যানুয়েল

সর্বোত্তম উত্তর. এসও তে অ্যান্ড্রয়েডের জন্য এতগুলি বান্দিড সমাধান রয়েছে।
ম্যাক্সবিউইডোইন

সুতরাং আমি যদি কিছু অপারেশন করতে চাই তবে getActivity () উপলব্ধ হওয়ার পরে কীভাবে সম্পাদন করতে পারি (যদি তা হয় তবে)।
শ্রীকান্ত করুণাঘাট

17

অ্যানড্রয়েড এপিআই স্তরের 23 স্তর থেকে, অনাচাচ (ক্রিয়াকলাপ ক্রিয়াকলাপ) হ্রাস করা হয়েছে। আপনাকে অনটচ (প্রসঙ্গে প্রসঙ্গ) ব্যবহার করতে হবে। http://developer.android.com/reference/android/app/Fragment.html#onAttach(android.app.Activity)

ক্রিয়াকলাপ একটি প্রসঙ্গ তাই আপনি যদি প্রসঙ্গটি কেবল কোনও কার্যকলাপ হিসাবে পরীক্ষা করতে পারেন এবং প্রয়োজনে এটি কাস্ট করতে পারেন।

@Override
public void onAttach(Context context) {
    super.onAttach(context);

    Activity a;

    if (context instanceof Activity){
        a=(Activity) context;
    }

}

এটি কীভাবে ব্যবহার করবেন
এআরআর.এস

10

PJL ঠিক আছে। আমি তার পরামর্শটি ব্যবহার করেছি এবং এটি আমিই করেছি:

  1. টুকরা জন্য সংজ্ঞায়িত গ্লোবাল ভেরিয়েবল:

    private final Object attachingActivityLock = new Object();

    private boolean syncVariable = false;

  2. বাস্তবায়িত

@Override
public void onAttach(Activity activity) {
  super.onAttach(activity);
  synchronized (attachingActivityLock) {
      syncVariable = true;
      attachingActivityLock.notifyAll();
  }
}

ঘ। আমি আমার ফাংশনটি গুটিয়ে রেখেছি, যেখানে আমাকে থ্রেডে getActivity () কল করতে হবে, কারণ এটি যদি মূল থ্রেডে চলতে থাকে তবে আমি থ্রেডটি 4 ধাপে ব্লক করে দেব এবং অনটচ () কখনই ডাকা হত না।

    Thread processImage = new Thread(new Runnable() {

        @Override
        public void run() {
            processImage();
        }
    });
    processImage.start();

ঘ। আমার ফাংশনে যেখানে আমাকে getActivity () কল করতে হবে, আমি এটি ব্যবহার করি (কল getActivity () কল করার আগে)

    synchronized (attachingActivityLock) {
        while(!syncVariable){
            try {
                attachingActivityLock.wait();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

আপনার যদি কিছু ইউআই আপডেট থাকে তবে এগুলি ইউআই থ্রেডে চালিয়ে যেতে ভুলবেন না। আমার ইমগভিউ আপডেট করা দরকার তাই আমি করেছি:

image.post(new Runnable() {

    @Override
    public void run() {
        image.setImageBitmap(imageToShow);
    }
});

7

কমান্ড () এর পরে কলব্যাকগুলি যে ক্রমে কল করা হয়:

  1. প্রতিশ্রুতি দেওয়ার পরে আপনি যেকোন পদ্ধতিতে ম্যানুয়ালি ডেকে আনা ()
  2. onAttach ()
  3. onCreateView ()
  4. onActivityCreated ()

আমার এমন কিছু কাজ করা দরকার যা কিছু দৃশ্যের সাথে জড়িত ছিল, সুতরাং অ্যাটাক () আমার পক্ষে কাজ করে নি; হুরমুর শব্দ করে ভাঙ্গা. সুতরাং আমি আমার কোডের এমন একটি অংশ সরিয়ে নিয়েছি যা কমিট () (১) এর ডানদিকে ডাকা একটি পদ্ধতির অভ্যন্তরে কিছু প্যারাম সেট করে রেখেছিল, তারপরে কোডের অন্যান্য অংশ যা অনক্রিটভিউ () (৩) এর ভিতরে ভিউ পরিচালনা করেছিল।


3

আমি OkHttp ব্যবহার করছি এবং আমি এই সমস্যার মুখোমুখি হয়েছি।


প্রথম অংশের জন্য @ থুকংগুইন সঠিক পথে ছিল

আপনি যখন অন্য থ্রেডে getActivity () কে কল করবেন তখন খণ্ডটি সরানোর পরে শেষ হয়েছে এটি ঘটেছে। টিপিক্যাল কেসটি getActivity () (টোস্টের জন্য প্রাক্তন) হিসাবে কল করছে যখন কোনও HTTP অনুরোধ শেষ হয়ে যায় (উদাহরণস্বরূপ onResponse এ)।

ক্রিয়াকলাপটি বন্ধ হয়ে যাওয়ার পরেও কিছু এইচটিটিপি কল কার্যকর করা হয়েছিল (কারণ এইচটিটিপি অনুরোধটি সম্পূর্ণ হতে কিছুক্ষণ সময় নিতে পারে)। আমি তখন HttpCallbackকিছু ফ্রেগমেন্ট ক্ষেত্র আপডেট করার চেষ্টা করেছি এবং চেষ্টা করার পরে nullব্যতিক্রম পেয়েছি getActivity()

http.newCall(request).enqueue(new Callback(...
  onResponse(Call call, Response response) {
    ...
    getActivity().runOnUiThread(...) // <-- getActivity() was null when it had been destroyed already

আইএমও সমাধানটি হ'ল কলব্যাকগুলি প্রতিরোধ করতে হবে যখন খণ্ডটি আর জীবিত থাকবে না (এবং এটি কেবল ওখটপ-এর সাথে নয়)।

সংশোধন: প্রতিরোধ।

আপনার যদি খণ্ডের জীবনচক্রটি ( এখানে আরও তথ্য ) দেখুন তবে আপনি দেখতে পাবেন যে সেখানে রয়েছে onAttach(Context context)এবং onDetach()পদ্ধতিগুলি। খণ্ডটি কোনও ক্রিয়াকলাপের সাথে সম্পর্কিত হওয়ার পরে এবং যথাক্রমে যথাক্রমে হওয়া বন্ধ করার আগে এগুলি বলা হয়।

তার মানে হল যে আমরা সেই কলব্যাকটি onDetachপদ্ধতিতে এটি নিয়ন্ত্রণ করে ঘটতে বাধা দিতে পারি ।

@Override
public void onAttach(Context context) {
    super.onAttach(context);

    // Initialize HTTP we're going to use later.
    http = new OkHttpClient.Builder().build();
}

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

    // We don't want to receive any more information about the current HTTP calls after this point.
    // With Okhttp we can simply cancel the on-going ones (credits to https://github.com/square/okhttp/issues/2205#issuecomment-169363942).
    for (Call call : http.dispatcher().queuedCalls()) {
        call.cancel();
    }
    for (Call call : http.dispatcher().runningCalls()) {
        call.cancel();
    }
}

2

আপনি কোথায় এই ফাংশন কল? আপনি যদি এটি কনস্ট্রাক্টরে কল করেন তবে Fragmentএটি ফিরে আসবেnull

getActivity()পদ্ধতিটি onCreateView()কার্যকর হলে কেবল কল করুন ।


1

নিম্নলিখিত হিসাবে না। আমি মনে করি এটি আপনার পক্ষে সহায়ক হবে।

private boolean isVisibleToUser = false;
private boolean isExecutedOnce = false;


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View root = inflater.inflate(R.layout.fragment_my, container, false);
    if (isVisibleToUser && !isExecutedOnce) {
        executeWithActivity(getActivity());
    }
    return root;
}

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    this.isVisibleToUser = isVisibleToUser;
    if (isVisibleToUser && getActivity()!=null) {
        isExecutedOnce =true;
        executeWithActivity(getActivity());
    }
}


private void executeWithActivity(Activity activity){
    //Do what you have to do when page is loaded with activity

}

1

অন্টচ (ক্রিয়াকলাপ ক্রিয়াকলাপ) নিয়ে এখনও যাদের সমস্যা রয়েছে তারা কেবল প্রসঙ্গে বদলেছেন -

    @Override
public void onAttach(Context context) {
    super.onAttach(context);
    this.context = context;
}

বেশিরভাগ ক্ষেত্রে প্রসঙ্গ সংরক্ষণ করা আপনার পক্ষে যথেষ্ট হবে - উদাহরণস্বরূপ, যদি আপনি getRes Source () করতে চান তবে আপনি সরাসরি প্রসঙ্গ থেকে এটি করতে পারেন। যদি এখনও আপনার ক্রিয়াকলাপে প্রসঙ্গ তৈরি করতে হয় তবে তা করুন -

 @Override
public void onAttach(Context context) {
    super.onAttach(context);
    mActivity a; //Your activity class - will probably be a global var.
    if (context instanceof mActivity){
        a=(mActivity) context;
    }
}

যেমন ব্যবহারকারী 1868713 দ্বারা প্রস্তাবিত।


0

আপনি অনাটাচ ব্যবহার করতে পারেন বা আপনি যদি সর্বত্র অনটাক লাগাতে না চান তবে আপনি এমন একটি পদ্ধতি রাখতে পারেন যা অ্যাপলিকেশনকে মূল অ্যাপ্লিকেশন শ্রেণিতে ফিরিয়ে দেয়:

public class App {
    ...  
    private static Context context;

    @Override
    public void onCreate() {
        super.onCreate();
        context = this;
    }

    public static Context getContext() {
        return context;
    }
    ...
}

এর পরে আপনি এটি আপনার প্রকল্পের সর্বত্র যেকোন জায়গায় পুনরায় ব্যবহার করতে পারেন:

App.getContext().getString(id)

এটি আপনার পক্ষে কাজ করে না তবে আমাকে জানান।


0

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

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


0

অ্যাক্টিভিটিক্রিটেড () এর অভ্যন্তরে getActivity () পদ্ধতিটি কল করুন

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