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

Добавлено разрешение WAKE_LOCK в манифесте, например,

<uses-permission android:name="android.permission.WAKE_LOCK" />

Вот мой код для открытия приложения,

 Intent intent = new Intent(this, HomeActivity.class);
 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 intent.putExtra(Constants.NewOrderRequest, true);
 startActivity(intent);
0
SHIDHIN.T.S 23 Окт 2018 в 10:29

2 ответа

Лучший ответ

Используйте это, чтобы запустить действие из службы

Intent inte = new Intent(context, Activity.class);


                    inte.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    inte.addCategory(intent.CATEGORY_LAUNCHER);
                    context.startActivity(inte);

И в действии поместите это в onCreate

   Window window=this.getWindow();
        window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
        window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
        window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
1
sourabh kaushik 23 Окт 2018 в 07:59

Возможно, это поможет вам, но вы должны делать это в Сервисах.

private ScreenObserver screenObserver;
public void onCreate() {
    IntentFilter filter = new IntentFilter();
    filter.addAction(Intent.ACTION_SCREEN_OFF);
    filter.addAction(Intent.ACTION_SCREEN_ON);
    screenObserver = new ScreenObserver();

    registerReceiver(screenObserver, filter);
}
private class ScreenObserver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
                if (isDebug) Log.d(TAG, "ScreenON");
                Intent intent = new Intent(this, HomeActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                intent.putExtra(Constants.NewOrderRequest, true);
                startActivity(intent);
            }
            if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
                if (isDebug) Log.d(TAG, "ScreenOFF");
            }
        }
    }
0
Seraph Gabriel 23 Окт 2018 в 07:52
52943436