آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

خطای Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TAS ...

iSheykhi  12 سال پیش  12 سال پیش
+1 0

با سلام

این خطا زمانی رخ می ده که بخواهیم خارج از یک اکتیویتی از دستور startActivity() استفاده کنیم

android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

کد من برای share کامله و عمل می کنه
اما وقتی توی custom spinner می خوام اجراش کنم خطای بالا رو می  ده

 getContext().startActivity(Intent.createChooser(sharingIntent, "Share via"));

متغیر sharingIntent هم کدش کامله و فقط مونده رفع این خطا که کلافه ام کرده

از دو خط زیر استفاده کردم اما جواب نداد

// sharingIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// sharingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

برای شناختن و اجرای

 startActivity()

از

getContext()

استفاده کردم

کسی به همچین مشکلی بر خورده

 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
مجتبی یگانه  12 سال پیش
0 0

همونطور که خودتون گفتید ، علت اینه که کلاس G اصلا UI نداره در واقع اکتیویتی نیست ، کلاس هست ، بنابراین ، اگر به خود خطا هم توجه کنید میگه نیاز هست پرچم ایجاد وظیفه ی جدید (اکتیویتی)  باید تعریف بشه که اگر به این شکل عمل کنید ، مشکل حل میشه

Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
0 0
برای G.intent؟ من توی کاستوم اسپینر مشکل دارم (12 سال پیش)
0 0
بهرحال ، با این پرچم امتحان کردید ؟! (12 سال پیش)
0 0
کدها رو ببین، امتحان کردم جواب نگرفتن، می رم توی کلاس G هم امتحان کنم (12 سال پیش)
0 0
مجتبی جان، چرا مهندس آقاجانی جوابی نمی ده؟ خبری ازش نداری؟ با شماره هم تماس گرفتم اما جوابی نداد (12 سال پیش)
0 0
نه منم مثل شما کاربر سایتم و ارتباطم باهاشون با ایمیل هست ، اما خودشون تو یکی از تاپیک ها گفتن که علت کم کاریشون در انجمن ، سورپزایزی هست که برامون دارن ! (12 سال پیش)
پاسخ به سوال 
iSheykhi  12 سال پیش
0 0

توی کلاس G زدم:

     public static Intent                intent          = new Intent();

// در onCreate
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

و کد اشتراک:

     getContext().startActivity(G.intent.createChooser(sharingIntent, "Share via"));

همینطور با:

      G.context.startActivity(G.intent.createChooser(sharingIntent, "Share via"));

اما باز هم خطای قبلی می ده

0 0
بهتره این کار را در هرکلاس بصورت جداگانه انجام بدید یعنی دیگه از G.context استفاده نکنید و به جاش از ActivityName.this تست کنید ببینید حل میشه ، هر چند مشکلتون حل نمیشه و فقط دورش میزنیم ! (12 سال پیش)
پاسخ به سوال 
iSheykhi  12 سال پیش
0 0

مجتبی جان

برای:

       SecondActivity.startActivity(android.content.Intent.createChooser(sharingIntent, "Share via"));

خطای:

Cannot make a static reference to the non-static method startActivity(Intent) from the type 

و برای:

       SecondActivity.this.startActivity(android.content.Intent.createChooser(sharingIntent, "Share via"));

خطای:

 No enclosing instance of the type SecondActivity is accessible in scope

رو می ده

توی کاستوم اسپینر که نمی تونم از ActivityName.this استفاده کنم

من بتونم دورش بزنم هم هنر کردم

پاسخ به سوال 
iSheykhi  12 سال پیش
0 0

شد شد شد شد شد

G.currentActivity.startActivity(Intent.createChooser(sharingIntent, "Share via"));

مهندس دمت گرم با این کلاس  G کارمون راه افتاد

مجتبی جون شما هم مرسی که جرقه اش رو زدی

0 0
خدارو شکر :) (12 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .