পেন্ডিং ইন্টেন্ট প্রথম বিজ্ঞপ্তির জন্য সঠিকভাবে কাজ করে তবে বাকীগুলির জন্য ভুল করে


88
  protected void displayNotification(String response) {
    Intent intent = new Intent(context, testActivity.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);

    Notification notification = new Notification(R.drawable.icon, "Upload Started", System.currentTimeMillis());
    notification.setLatestEventInfo(context, "Upload", response, pendingIntent);

    nManager.notify((int)System.currentTimeMillis(), notification);
}

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

অতিরিক্ত তথ্য: ফাংশন displayNotification()বলা হয় একটি শ্রেণিতে UploadManager। যে তাত্ক্ষণিক থেকে Contextপাস করা UploadManagerহয় activity। ফাংশনটি ফাংশন displayNotification()থেকে একাধিকবার বলা হয়, এছাড়াও আপলোডম্যানেজারে, এটি একটি চলমান AsyncTask

সম্পাদনা 1: আমি উল্লেখ করতে ভুলে গেছি যে আমি স্ট্রিং প্রতিক্রিয়াটিকে Intent intentএকটি হিসাবে রূপান্তর করছি extra

  protected void displayNotification(String response) {
    Intent intent = new Intent(context, testActivity.class);
    intent.putExtra("response", response);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

এটি একটি বড় পার্থক্য করে কারণ নোটিফিকেশন তৈরি হওয়ার সময় স্ট্রিং প্রতিক্রিয়া কী ছিল তা প্রতিবিম্বিত করতে আমার অতিরিক্ত "প্রতিক্রিয়া" দরকার। পরিবর্তে, PendingIntent.FLAG_UPDATE_CURRENTঅতিরিক্ত "প্রতিক্রিয়া" ব্যবহার করে স্ট্রিং প্রতিক্রিয়াটি সর্বশেষ কলটিতে কী ছিল তা প্রতিফলিত করে displayNotification()

আমি জানি কেন এটি ডকুমেন্টেশনটি পড়া থেকে FLAG_UPDATE_CURRENT। তবে এই মুহুর্তে কীভাবে এটি কাজ করবেন তা সম্পর্কে আমি নিশ্চিত নই।

উত্তর:


126

Intent.FLAG_ACTIVITY_NEW_TASKপেন্ডিং ইন্টেন্ট.জেটঅ্যাক্টিভিটির জন্য ব্যবহার করবেন না , পরিবর্তে FLAG_ONE_SHOT ব্যবহার করুন


মন্তব্য থেকে অনুলিপি:

তারপরে ইন্টেন্টে কিছু ডামি অ্যাকশন সেট করুন, অন্যথায় অতিরিক্তগুলি বাদ দেওয়া হয়। উদাহরণ স্বরূপ

intent.setAction(Long.toString(System.currentTimeMillis()))

এই পতাকাটি একই কারণে হয় না, আমার ধারণা, আমার অতিরিক্ত সঠিকভাবে কাজ করছে না (আমার সম্পাদনা 1 টি পরীক্ষা করুন)।

32
তারপরে ইন্টেন্টে কিছু ডামি অ্যাকশন সেট করুন, অন্যথায় অতিরিক্তগুলি বাদ দেওয়া হয়। উদাহরণস্বরূপ intent.setAction ("foo")
5:44 এ ognian

20
দুর্দান্ত। কাজ করেছে। আমি এমবাউর প্রস্তাবিত FLAG_UPDATE_CURRENT ব্যবহারের সাথে একযোগে অ্যাকশন (লং.টোস্ট্রিং (সিস্টেম। কর্নারটাইমমিলিস ()) নির্ধারণ করেছি। FLAG_ONE_SHOT ব্যবহারের ফলে আমাকে কেবলমাত্র বিজ্ঞপ্তিটি একবারে ক্লিক করতে দেওয়া হয়েছিল (যা বোঝা যায়)। অনেক অনেক ওগানিয়ান ধন্যবাদ।

4
"তারপরে ইন্টেন্টে কিছু ডামি অ্যাকশন সেট করুন, অন্যথায় অতিরিক্ত বাদ দেওয়া হয়" - এটি কি কোথাও নথিভুক্ত করা হয়েছে?
মিস্টার_আর_ম্রি_ডে

সেটএকশন প্রক্রিয়াটি আমার পক্ষে কাজ করেছিল। যতদূর নথিভুক্ত হয়েছে, নিশ্চিত নয়, তবে অ্যান্ড্রয়েডের উত্সটি android.googlesource.com ;-) এ উপলব্ধ
নরম্যান এইচ

62

সঙ্গে সংগ্রাম ছিল RemoteViewsএবং কয়েকটি বিভিন্ন ধরণের Intentsপ্রতিটি ButtonউপরHomeScreen উইজেট। এগুলি যুক্ত করার পরে কাজ করেছেন:

ঘ। intent.setAction(Long.toString(System.currentTimeMillis()));

ঘ। PendingIntent.FLAG_UPDATE_CURRENT

        PackageManager pm = context.getPackageManager();

        Intent intent = new Intent(context, MyOwnActivity.class);
        intent.putExtra("foo_bar_extra_key", "foo_bar_extra_value");
        intent.setAction(Long.toString(System.currentTimeMillis()));
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
                intent, PendingIntent.FLAG_UPDATE_CURRENT);
        RemoteViews views = new RemoteViews(context.getPackageName(),
                R.layout.widget_layout);
        views.setOnClickPendingIntent(my_button_r_id_received_in_parameter, pendingIntent);

+1 দুর্দান্ত ধন্যবাদ কোনও ধারণা কেন ইন্টেন্ট.সেটএশন () এটিকে কাজ করে?
AjOnFire

সেটএকশন কাজ করে তবে কী যদি আমাকে আসলে আমার উদ্দেশ্যগুলি অ্যাকশনটিকে অন্য কোনও কিছুতে সেট করতে হয়? কাঠামো এত বগল কেন?
লাইটস্পিড

4
আমি শুধু ভালবাসা ভাবে Android SDK এর তাই বিকাশকারীদের কাছে স্বজ্ঞাত ... (হল: ♥ ️ BTW কারণটির উপরে ব্যাখ্যা জন্য নিচের @ObjectiveTruth উত্তর পড়াsetAction
Aviel গ্রস

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

@clu যেহেতু আমি ইতিমধ্যে ব্যবহার করছি setAction, আপনি যা করতে পারেন তা addCategory। ক্রিয়া, ডেটা, প্রকার, শ্রেণি এবং বিভাগগুলির সমতা পরীক্ষা করার জন্য PendingIntentব্যবহার Intent.filterEqualsকরে। বিকাশকারী.অ্যান্ড্রয়েড
রেফারেন্স

44

সেট অ্যাকশন আমার জন্য এটি সমাধান। পরিস্থিতি সম্পর্কে আমার বোঝার বিষয়টি এখানে:


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

FLAG_UPDATE_CURRENT বিবরণ এখন আরও ভাল পড়ে:

আপনি যদি একই পেন্ডিংআইন্টেন্টটি তৈরি করছেন ইতিমধ্যে বিদ্যমান থাকে, তবে আপনি যে পুরানোগুলি তৈরি করছেন তা নতুন আপডেটের জন্য আপডেট করুন।

ঠিক একই সংজ্ঞাটি পুরো পেন্ডিং ইন্টেন্ট অতিরিক্ত ব্যতীত দেখে। সুতরাং আপনার যদি প্রতিটি অভিপ্রায় বিভিন্ন অতিরিক্ত থাকে (আমার জন্য আমি অ্যাপ্লিকেশনটি যোগ করছিলাম) তবে অ্যান্ড্রয়েডে, সেগুলি একই।

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

Intent configureIntent = new Intent(context, ActivityPreferences.class);

configureIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);

configureIntent.setAction("dummy_unique_action_identifyer" + appWidgetId);

PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, configureIntent,
    PendingIntent.FLAG_UPDATE_CURRENT);

হালনাগাদ


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

//Weee, magic number, just want it to be positive nextInt(int r) means between 0 and r
int dummyuniqueInt = new Random().nextInt(543254); 
PendingIntent pendingClearScreenIntent = PendingIntent.getBroadcast(context, 
    dummyuniqueInt, clearScreenIntent, PendingIntent.FLAG_UPDATE_CURRENT);

4
চমৎকার ক্লিন সলিউশন
বরুণ গার্গ

4
আমার জন্য অনন্য আইডি এবং মুলতুবিকরণের জন্য রয়েছে F
কৌস্তুব

এটি কিছুটা আশ্চর্যের বিষয় যে কীভাবে এটি
উদ্বেগের

20

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

ডকুমেন্টেশন:

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

সমস্যার কারণ:

আপনি 2 টি মুলতুবি উদ্দেশ্য সহ 2 টি বিজ্ঞপ্তি তৈরি করেন। প্রতিটি বিচারাধীন উদ্দেশ্য একটি অভিপ্রায় সঙ্গে যুক্ত:

Intent intent = new Intent(context, testActivity.class);

তবে, এই 2 টি ইন্টেন্ট সমান, অতএব আপনার দ্বিতীয় বিজ্ঞপ্তি এলে এটি প্রথম উদ্দেশ্যটি চালু করবে।

সমাধান:

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

  • কর্ম: intent.setAction(...)
  • তথ্য: intent.setData(...)
  • প্রকার: intent.setType(...)
  • শ্রেণি: intent.setClass(...)
  • বিভাগ: intent.addCategory(...)
  • অনুরোধ কোড: PendingIntent.getActivity(context, YOUR_UNIQUE_CODE, intent, Intent.FLAG_ONE_SHOT);

দ্রষ্টব্য : একটি অনন্য অনুরোধ কোড সেট করা জটিল হতে পারে কারণ আপনার System.currentTimeMillis()দীর্ঘকালীন সময়ে প্রয়োজন হবে, যার অর্থ কিছুটা দীর্ঘ হবে, যার অর্থ কিছু অঙ্ক সরিয়ে দেওয়া হবে। অতএব আমি হয় হয় বিভাগ বা ক্রিয়া এবং একটি অনন্য স্ট্রিং সেট সঙ্গে যান পরামর্শ ।


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

হ্যাঁ, আমি প্রতিটি অভিপ্রায়টির জন্য একটি অনন্য বিভাগও ব্যবহার করছি, এটি দুর্দান্ত কাজ করে।
স্টিলিওসফ

একই সমস্যা আছে। দুটি বিজ্ঞপ্তি একই সাথে ট্রিগার করা হয়েছে। যখন আমি দ্বিতীয় বিজ্ঞপ্তি ক্লিক করি তখন কিছুই ঘটেছিল না। এই সেটঅ্যাকশন সেট করার পরে (লং। টোস্ট্রিং (সিস্টেম.কন্ট্রেন্টটাইমমিলিস ())); । এটি কবজ মত কাজ। @ এমএসকোট
অনন্ত বাবু

13

আমারও একই সমস্যা ছিল এবং আমি পতাকাটি পরিবর্তন করে এটি ঠিক করতে সক্ষম হয়েছি:

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

আপনার জন্য সমস্যাটি ঠিক করে দেওয়ার জন্য সময় দেওয়ার জন্য অনেক ধন্যবাদ। আমি উল্লেখ করতে ভুলে গেছি যে আমি ইনটেন্টে একটি অতিরিক্ত পাস করছি। এটি সমস্যাটিকে আরও জটিল করে তোলে। আমার সম্পাদনা 1 টি পরীক্ষা করুন

9

নথি হিসাবে অনন্য অনুরোধ কোড ব্যবহার করুন বলেছেন:

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


4
এটিই পয়েন্ট উত্তরের একমাত্র সত্য এবং সঠিক। এটি খুঁজছিলাম, কারণ আমি একই জিনিস পোস্ট করতে চেয়েছিলাম। :-)
সেভাস্ত্যান সাভানিউক

7

Fww, আমার PendingIntent.FLAG_CANCEL_CURRENTচেয়ে ভাল ভাগ্য ভাল ছিল PendingIntent.FLAG_UPDATE_CURRENT


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

4

আমার একই সমস্যা ছিল এবং আমি নীচের পদক্ষেপগুলি দ্বারা এটি ঠিক করেছি

1) অভিপ্রায় জন্য কোনও পতাকা সাফ করুন

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);

2) নীচের কোড দ্বারা intent.setAction sertোকান

 intent.setAction(Long.toString(System.currentTimeMillis()));

3) মুলতুবি থাকার জন্য, নীচের কোডটি সন্নিবেশ করুন

   PendingIntent Pintent = PendingIntent.getActivity(ctx,0, intent,PendingIntent.FLAG_UPDATE_CURRENT);

আমি আপনার সাথে কাজ আশা করি


4
এই উত্তরটি কেন হ্রাস পেয়েছিল তা ব্যাখ্যা করার জন্য যে কারও একটিও যত্ন নেই। এটি আমার পক্ষে কাজ করেছে। আমি জানি না এটি বৈধ উত্তর কিনা তবে এই সমাধানটিই সঠিক সমাধান। অন্তত আমার জন্য.
সন্দীপ আর

আমার জন্যও কাজ করেছেন! ধন্যবাদ!
Andres

2
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);

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


0
// Use pending Intent and  also use unique id for display notification....
// Get a PendingIntent containing the entire back stack
PendingIntent notificationPendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
NotificationManager mNotificationManager = (NotificationManager)  sqlitewraper.context.getSystemService(Context.NOTIFICATION_SERVICE);
// Issue the notification
mNotificationManager.notify(id, builder.build());

0

অতিরিক্ত তথ্য সঠিকভাবে প্রেরণ করার জন্য আপনাকে প্রজ্ঞাপন আইডির মতো মুলতুবি প্রেরণের সাথে প্রেরণ করতে হবে: পেন্ডিং ইন্টেন্ট পেন্ডিংইন্টেন্ট = পলিটিং ইন্টেন্ট.জেটঅ্যাকটিভিটি (কনটেক্সট, ( ইন্টি)) সিস্টেম।


0

আমার একই সমস্যা রয়েছে এবং এটি সমাধানের জন্য পেন্ডিং ইন্টেন্ট এইচটিএমএল.এফ.এফ.এল.জি.উপ.ডি.ডি.সি.আর.আর.এন.টি .

আমি সোর্স কোডটি যাচাই করেছি। ইন ActivityManagerService.java , কী পদ্ধতি হিসাবে অনুসরণ করে নয়। পতাকাটি মুলতুবি থাকা অবস্থায় রয়েছে F FLAG_UPDATE_CURRENT এবং আপডেটকারেন্টটি সত্য। কিছু অতিরিক্ত নতুন দ্বারা প্রতিস্থাপিত হবে এবং আমরা একটি প্রতিস্থাপন পেনসিং ইনটেন্ট পাব।

    IIntentSender getIntentSenderLocked(int type, String packageName,
            int callingUid, int userId, IBinder token, String resultWho,
            int requestCode, Intent[] intents, String[] resolvedTypes, int flags,
            Bundle bOptions) {

// ... omitted

        final boolean noCreate = (flags&PendingIntent.FLAG_NO_CREATE) != 0;
        final boolean cancelCurrent = (flags&PendingIntent.FLAG_CANCEL_CURRENT) != 0;
        final boolean updateCurrent = (flags&PendingIntent.FLAG_UPDATE_CURRENT) != 0;
        flags &= ~(PendingIntent.FLAG_NO_CREATE|PendingIntent.FLAG_CANCEL_CURRENT
                |PendingIntent.FLAG_UPDATE_CURRENT);

        PendingIntentRecord.Key key = new PendingIntentRecord.Key(
                type, packageName, activity, resultWho,
                requestCode, intents, resolvedTypes, flags, bOptions, userId);
        WeakReference<PendingIntentRecord> ref;
        ref = mIntentSenderRecords.get(key);
        PendingIntentRecord rec = ref != null ? ref.get() : null;
        if (rec != null) {
            if (!cancelCurrent) {
                if (updateCurrent) {
                    if (rec.key.requestIntent != null) {
                        rec.key.requestIntent.replaceExtras(intents != null ?
                                intents[intents.length - 1] : null);
                    }
                    if (intents != null) {
                        intents[intents.length-1] = rec.key.requestIntent;
                        rec.key.allIntents = intents;
                        rec.key.allResolvedTypes = resolvedTypes;
                    } else {
                        rec.key.allIntents = null;
                        rec.key.allResolvedTypes = null;
                    }
                }
                return rec;
            }
            rec.canceled = true;
            mIntentSenderRecords.remove(key);
        }


-5

আমারও একই সমস্যা ছিল এবং আমি পতাকাটি পরিবর্তন করে এটি ঠিক করতে সক্ষম হয়েছি:

LayoutInflater factory = LayoutInflater.from(this);            
      final View textEntryView = factory.inflate(R.layout.appointment, null);
      AlertDialog.Builder bulider= new AlertDialog.Builder(PatientDetail.this);
      final AlertDialog alert=bulider.create();


        bulider.setTitle("Enter Date/Time");
        bulider.setView(textEntryView);
        bulider.setPositiveButton("Save", new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int which) {
                      EditText typeText=(EditText) textEntryView.findViewById(R.id.Editdate);
                      EditText input1 =(EditText) textEntryView.findViewById(R.id.Edittime);
                      getDateAndTime(typeText.getText().toString(),input1.getText().toString());
                }
            });
        bulider.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            });

        bulider.show();

    }

4
জিজ্ঞাসা করা প্রশ্নের সাথে এর কোনও যোগসূত্র নেই।
পল তুরচেনকো

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