2014-03-13 4 views
11

다른 Android 앱을 실행할 수있는 키오스크 앱에서 작업합니다. 그것은 lockscreen의 위에 달린다. 내가 겪고있는 문제는 잠금 화면이 활동간에 잠시 표시된다는 것입니다. 태블릿을 잠그지 않도록해야 잠금 해제를 할 수 없습니다.활동간에 잠금 화면이 표시됩니다.

나는 이것을 아주 간단한 경우로 재현 할 수있었습니다. 두 활동 모두 거의 동일합니다. 응용 프로그램은 장치 관리자이며 키 가드 위에 표시 할 수 있습니다. 또한 finish()을 사용하지 않으려 고했지만 그 문제는 해결되지 않았습니다.

public class MainActivity extends Activity { 

    private Handler h = new Handler(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN); 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Button bneg1 = (Button) findViewById(R.id.bneg1); 
     bneg1.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       h.post(new Runnable() { 
        @Override 
        public void run() { 
         Intent i = new Intent(MainActivity.this, SecondActivity.class); 
         startActivity(i); 
         finish(); 
        } 
       }); 
      } 
     }); 
    } 
} 

먼저 잠금 화면을 잠깐 표시하지 않고 다른 활동을 시작할 수 있습니까?

+0

startActivity() 후에 overridePendingTransition (0, 0)을 사용하여 FLAG_ACTIVITY_NO_ANIMATION을 시도한 적이 있습니까? 이것은 "sliding-in"에서 새로운 활동을 유지하고 대신 즉시 시작합니다. 고칠 수는 없지만 한 번 볼만한 가치가 있습니다. – zgc7009

+1

나는 그것을 시도했다. 어떤 차이도없는 것으로 보입니다. – Randy

답변

4

먼저 잠금 화면을 간략하게 표시하지 않고 다른 활동을 시작할 수 있습니까?

더 쉬운 방법은 activity-1을 시작하기 전에 더미 (일반보기) 활동을 실행하는 것입니다. 이렇게하면 activity-1을 끝내면 dummy-activity이 이어지고 activity-2이 나오고 포 그라운드로 들어옵니다.

윈도우 애니메이션을 제공하지 않도록 시스템에 알릴 필요가 있습니다 (대부분). 이렇게하면 응용 프로그램 테마에 추가 :

<item name="android:windowAnimationStyle">@null</item> 
+0

이것은 작동 할 수도 있습니다. 나는 내 발견을 다시 게시 할 것이다. – Randy

+0

그래서 나는 이것을 진정으로 테스트하지는 못했습니다 : 이전의 테스트에 따르면 이것은 효과가 없을 것입니다. 나는 두 활동에서'finish()'를 완전히 제거했다. 이것은 여전히 ​​스택에 액티비티를 가질 것이므로 더미 액티비티를 갖는 것과 같은 효과를 가져 왔습니다. 잠금 화면은 여전히 ​​잠깐 나타납니다. – Randy

+0

@Randy 직접 접근하지 않고이 접근법을 제안했습니다. 사과. 작동하지 않습니다. 내가 시도한 또 다른 것 :'TYPE_TOAST'로 화면 크기의 PopupWindow를 보여주기 전에 activity-2 (바로 그 직후에 해제)가 작동하지 않는다. TYPE_SYSTEM_ALERT가 설정된 윈도우 관리자의'addView (...) '를 사용하여 화면 크기의 불투명 뷰를 추가하는 것은 작동하지 않습니다. – Vikram

관련 문제