Для вызова startactivity () вне контекста activity требуется флаг flag_activity_new_task. это действительно то, что вам нужно?

Я получил эту ошибку при отображении данных от адаптера, установленного в сервисе.

Эта конкретная ошибка встречается ниже версий Android M.

04-11 04:24:21.727: E/AndroidRuntime(25540): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
04-11 04:24:21.727: E/AndroidRuntime(25540):    at android.app.ContextImpl.startActivity(ContextImpl.java:1296)
04-11 04:24:21.727: E/AndroidRuntime(25540):    at android.app.ContextImpl.startActivity(ContextImpl.java:1283)
04-11 04:24:21.727: E/AndroidRuntime(25540):    at android.content.ContextWrapper.startActivity(ContextWrapper.java:329)
04-11 04:24:21.727: E/AndroidRuntime(25540):    at com.example.adapter.ImageAndVideoDisplayAdapter$1.onClick(ImageAndVideoDisplayAdapter.java:93)
04-11 04:24:21.727: E/AndroidRuntime(25540):    at android.view.View.performClick(View.java:4762)
04-11 04:24:21.727: E/AndroidRuntime(25540):    at android.view.View$PerformClick.run(View.java:19774)
04-11 04:24:21.727: E/AndroidRuntime(25540):    at android.os.Handler.handleCallback(Handler.java:739)
04-11 04:24:21.727: E/AndroidRuntime(25540):    at android.os.Handler.dispatchMessage(Handler.java:95)
04-11 04:24:21.727: E/AndroidRuntime(25540):    at android.os.Looper.loop(Looper.java:135)
04-11 04:24:21.727: E/AndroidRuntime(25540):    at android.app.ActivityThread.main(ActivityThread.java:5296)
04-11 04:24:21.727: E/AndroidRuntime(25540):    at java.lang.reflect.Method.invoke(Native Method)
04-11 04:24:21.727: E/AndroidRuntime(25540):    at java.lang.reflect.Method.invoke(Method.java:372)
04-11 04:24:21.727: E/AndroidRuntime(25540):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
04-11 04:24:21.727: E/AndroidRuntime(25540):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
04-11 04:24:22.923: E/Sensors(870): [Sensor_HAL] : accel [0.425032] [2.300706] [9.610083]
04-11 04:24:23.457: E/Sensors(870):  Light adc=114, lux_tmp = 108.300003
04-11 04:24:23.457: E/Sensors(870): report event: Light adc=114, lux_float = 114.949997
04-11 04:24:24.260: E/Sensors(870):  Light adc=143, lux_tmp = 135.850006
04-11 04:24:24.261: E/Sensors(870): report event: Light adc=143, lux_float = 135.850006
04-11 04:24:24.846: E/Sensors(870): [Sensor_HAL] : accel [1.248637] [0.002273] [9.112089]
04-11 04:24:26.769: E/Sensors(870): [Sensor_HAL] : accel [1.306098] [-0.074342] [9.399393]
04-11 04:24:28.693: E/Sensors(870): [Sensor_HAL] : accel [1.516788] [-0.265878] [9.207857]
04-11 04:24:30.591: E/Sensors(870):  Light adc=200, lux_tmp = 190.000000
04-11 04:24:30.591: E/Sensors(870): report event: Light adc=200, lux_float = 190.000000
04-11 04:24:30.615: E/Sensors(870): [Sensor_HAL] : accel [1.076254] [-0.917101] [9.610083]

Я также сделал это в адаптере:

Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("image/jpeg");
sharingIntent.putExtra(Intent.EXTRA_STREAM, modelStatus.filePath);
sharingIntent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
// sharingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
context.startActivity(Intent.createChooser(sharingIntent, "Share image using"));

Ставлю адаптер из сервиса:

adapter = new ImageAndVideoDisplayAdapter(getApplicationContext(), 5, list);

В адаптере я получаю контекст в конструкторе и делаю вышеуказанный код общего доступа. Я могу вызвать из-за проблемы контекста, но я не знал, что на самом деле.

Возможный дубликат Вызов startActivity () вне контекста Activity

AskNilesh 11.04.2018 13:12

но решение не сработало, потому что адаптер, который мы настроили в службе, не активен, и моя служба запускается, когда мое приложение закрывается и открывается другое приложение, поэтому он не может найти getApplictionContext ();

KrishnaJ 11.04.2018 13:13
0
2
261
0

Другие вопросы по теме