خطای Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TAS ...
با سلام
این خطا زمانی رخ می ده که بخواهیم خارج از یک اکتیویتی از دستور 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()
استفاده کردم
کسی به همچین مشکلی بر خورده
همونطور که خودتون گفتید ، علت اینه که کلاس G اصلا UI نداره در واقع اکتیویتی نیست ، کلاس هست ، بنابراین ، اگر به خود خطا هم توجه کنید میگه نیاز هست پرچم ایجاد وظیفه ی جدید (اکتیویتی) باید تعریف بشه که اگر به این شکل عمل کنید ، مشکل حل میشه
Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
توی کلاس 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"));
اما باز هم خطای قبلی می ده
مجتبی جان
برای:
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 استفاده کنم
من بتونم دورش بزنم هم هنر کردم
شد شد شد شد شد
G.currentActivity.startActivity(Intent.createChooser(sharingIntent, "Share via"));
مهندس دمت گرم با این کلاس G کارمون راه افتاد
مجتبی جون شما هم مرسی که جرقه اش رو زدی
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .