2012-02-05 100 views
0

Im建立自定义主屏幕与自定义锁屏。当屏幕关闭时,我启动锁屏(活动), 但是,当锁屏被杀死(通过“finish()”),它会返回到 我的主屏幕apk中的最后一个活动,而不是真正的活动(apk), 是在屏幕熄灭之前可见的。麻烦实现自定义锁定屏幕(后台活动问题)

例如,如果我在计算器应用程序,或在时钟应用程序了,并且锁定屏幕打开,当锁屏活动结束后,它不会返回到计算器/时钟

这里的地方我注册了锁屏(主发射活动)和开/关事件接收屏幕:

private void doLockScreenOperations() 
{ 
    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); 
    KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); 
    lock.disableKeyguard(); 

    IntentFilter lockfiFilter = new IntentFilter(); 
    lockfiFilter.addAction(Intent.ACTION_SCREEN_OFF); 
    lockfiFilter.addAction(Intent.ACTION_SCREEN_ON); 
    getApplicationContext().registerReceiver(new LockScreenReceiver(), lockfiFilter); 
} 

这里的接收器本身,我启动了锁屏的活动:

public class LockScreenReceiver extends BroadcastReceiver 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     String action = intent.getAction(); 

     if (action.equals(Intent.ACTION_SCREEN_OFF)) 
     { 
      if (LockScreenActivity.isLockScreenAlive == false) 
      { 
       Intent lockIntent = new Intent(context, LockScreenActivity.class); 
       lockIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
       context.startActivity(lockIntent); 
      } 
     } 

     else if (action.equals(Intent.ACTION_SCREEN_ON)) 
     { 

     } 
    } 
} 

LockScreenActivity在那一刻是一个简单的活动,其按钮被点击后称为finish(),按钮为 。

我不知道如何解决这个问题。

在此先感谢!

回答

1

我不能完全肯定的伴侣,但是你要考虑这个问题: Intent.FLAG_ACTIVITY_NEW_TASK开始的观点 一个全新的组,以便在逻辑上你没有先前活动回去退出你的锁屏时。

我正在建造一个自己,非常类似于你如何做到这一点。 但不幸的是有这些问题: - 它负载放缓有时 - 它加载时,它“感觉”,如:/ 纳米,古德勒克队友

+0

你怎么解决的主页按钮的问题?你(都)有一些回购分享? – matiasfh 2014-08-07 14:41:27