2013-10-13 3 views
1

Когда получено уведомление, мое приложение Android откроется, когда уведомление будет вызвано из центра уведомлений, но вместе с тем я хочу открыть мой скользящий ящик также. Вот мой кодОткрыть приложение для Android при получении Push-уведомления

IntentReceiver.class (изготовленный на заказ толчок приемник)

 String action = intent.getAction(); 
    if (action.equals(PushManager.ACTION_NOTIFICATION_OPENED)) { 
      Log.i(logTag, "User clicked notification. Message: " + intent.getStringExtra(PushManager.EXTRA_ALERT)); 

     // logPushExtras(intent); 
      if(!MainActivity.active){ 
      Intent launch = new Intent(Intent.ACTION_MAIN); 
      launch.setClass(UAirship.shared().getApplicationContext(), MainActivity.class); 
      launch.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      UAirship.shared().getApplicationContext().startActivity(launch); 
      } 

    } 
} 

и это в основной деятельности ..

public static boolean active; 

Я хочу объявления d следующие

final SlidingDrawer banner = (SlidingDrawer) findViewById(R.id.slidingDrawer1); 
     banner.animateOpen(); 

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

ответ

2

Ваш вопрос немного неясен. Насколько я понимаю, у вас есть основная деятельность, которая может быть открыта либо из пусковой установки, либо из намерения уведомления. Вы хотите открыть Скользящий ящик только, когда действие начинается с намерения уведомления, но не тогда, когда оно запускается из пусковой установки. Если это так, вам просто нужно использовать Intent.putExtra() при создании своего намерения launch, а затем проверить его при открытии своей активности.

Добавить в IntentReceiver.class до startActivity(launch):

launch.putExtra("notification", "true"); 

В Main Activity:

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.yourlayoutfile); 

    final SlidingDrawer banner = (SlidingDrawer) findViewById(R.id.slidingDrawer1); 

    Intent intent = getIntent(); 
    String extra = intent.getStringExtra("notification"); 

    if(extra != null && extra.equals("true") && (intent.getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) == 0) 
    { 
     banner.animateOpen(); 
    } 
} 

FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY проверка должна гарантировать, что намерение исходит от вашего приемника, а не последние кэшированные намерения ,

Как и FYI, SlidingDrawer устарел.

+0

Извините, что не понимаете. но вы догадались, что это правильно. Код работает так, как я хотел. Спасибо! – pranavsethi96

Смежные вопросы