在做展讯平台的时候遇到四叶草锁屏,下滑可以快速进入拍照应用,经调试发现每次打开都是新的activity,并没有还原之前锁屏之前相机的状态,通过代码跟踪和调试发现,与Intent设置启动参数有关,改动点见文中fix begin和fix end 标志:
public void onTrigger(View v, Intent intent) {
if(mCallback!=null) {
Log.d("cara","onTrigger mCallback="+mCallback);
mCallback.pokeWakelock();
mStatus1.setVisibility(View.GONE);
mStatus2.setVisibility(View.GONE);
mDragHint.setVisibility(View.VISIBLE);
mIntent = null;
if(intent != null){
mIntent = new Intent(intent);
//fix begin
mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
mIntent.addCategory(Intent.CATEGORY_LAUNCHER);
//fix end
mContext.startActivity(mIntent);
}
mHandler.postDelayed(new Runnable() {
public void run() {
if(mCallback!= null)
mCallback.goToUnlockScreen();
}
}, 250);
}
}
onTrigger函数是每次滑动到屏幕到一个解锁位置(比如滑动到相机应用或者滑动到解锁点的时候)会触发这个函数
Intent设置这样的参数后就相当于从Launcher里面进入应用了,可以完美的还原相机应用之前的状态。