Android 글로벌 팝업 창 및 클릭 응답 조작
2. 모든 페이지가 지금 보이지 않는다는 것을 알아야 한다.시스템은 스스로 이런 방법을 가지고 있다.클래스를 써서 시스템을 직접 실현하는 방법: Application.ActivityLifecycleCallbacks 1)public class ActivityLifecycleController implements Application.ActivityLifecycleCallbacks {
private static boolean isAppInForeground;
private static int started;
public ActivityLifecycleController() {
started = 0;
}
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
}
@Override
public void onActivityStarted(Activity activity) {
++started;
}
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
--started;
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
//
public static int getStartedCount(){
return started;
}
}
2) 일반적으로 자체적인 BaseApplication이 있고 시스템의 Application을 계승한다.onCreate 방법에서 앞의 생명주기 제어 클래스를 초기화합니다:registerActivityLifecycleCallbacks (new ActivityLifecycleController ();
3. 준비 작업이 완료되면 사용자가 백그라운드로 돌아가는 작업은 Home 키나 메뉴 키를 통과할 수 있습니다. 이때onStop 방법에서 상기 제어 클래스를 호출하는 방법: int startActivity Count =Activity Lifecycle Controller.getStartedCount(); 수량이 0일 때 모든 페이지가 stop으로 갔습니다. 이 때 응용 프로그램이 백엔드로 되돌아왔음을 의미합니다.온 리소스 방법에서 이 값을 판단하면 탄창이나 토스트를 선택할 수 있다는 것을 기억하기 위해 값을 설정할 수 있습니다.
4. 팝윈도우나 다이어로그를 계승하는 것도 권장하지 않는다.DialogFragment를 사용하는 것을 추천합니다. 더욱 높은 복용성 (결합 감소) 과 편리성 (화면 뒤집기를 잘 처리하는 경우) 을 가지고 있습니다.예를 들어 회전 스크린의 경우 DialogFragment 기반 대화상자는 Fragment Manager에서 자동으로 재구성하지만 Dialog 기반 대화상자는 이러한 능력이 없습니다.여기에 비교적 일반적인 방법//새 public static void news Instance(Fragment Manager fm) {Fragment Transaction = fm.begin Transaction(), Fragment fragment = fm.find Fragment ByTag("TestDialog"), if(null!=fragment) {fragment Transaction.remove(fragment);TestDialog testDialog= new TestDialog(); myDialogFragment.show(fragmentTransaction, “TestDialog”); }
@Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE); View view=LayoutInflater.from(getActivity()).inflate(R.layout.fragment_dialog_study_record_rule, container,false); return view; } 여기에서 누군가가 창설하는 것은 이런 방법이 아니라 onCreate Dialog 방법일 수도 있지만 평소에 사용하면서 저는 사용하지 않았습니다. 대부분의 경우 창문에 둥근 배경이 있고 이 방법을 사용하면 효과가 없습니다.신이 아신다면 하나, 둘 알려주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.