当收到通知时,我的Android应用程序会在通知中心点击通知时打开,但同时我也要打开我的滑动抽屉.. 这是我的代码
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;
我想添加以下内容
final SlidingDrawer banner = (SlidingDrawer) findViewById(R.id.slidingDrawer1);
banner.animateOpen();
任何人都可以告诉我该怎么做.. 通过通知打开应用程序时打开滑动抽屉。
答案 0 :(得分: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已被弃用。