마무리하지 않고 배경으로 활동을 보냅니다
-
19-09-2019 - |
문제
활동을 어떻게 전화하지 않고 배경으로 갈 수 있습니까? finish()
이것을 시작한 학부모 활동으로 돌아가고 있습니까? 너무 많이 시도했지만 해결책을 찾을 수 없었습니다. 당신이 도와 줄 수 있다면 나는 매우 감사 할 것입니다.
해결책
활동이 부모와 다른 작업으로 실행되는 경우 다음은 작동합니다. 이를 달성하려면 참조하십시오 http://developer.android.com/guide/topics/manifest/activity-element.html#lmode.
public void onBackPressed () {
moveTaskToBack (true);
}
현재의 과제는 숨겨져 있지만 상태는 손대지 않게 유지되며 재 활성화되면 떠날 때와 마찬가지로 나타납니다.
다른 팁
백그라운드에서 캐시 / 저장 / 프로세스하려는 데이터가있는 경우 Asynctask 또는 a 실.
캐시 / 부모로 전환 할 준비가되면 자녀 활동 방법 중 하나에서 다음과 같은 작업을 수행합니다 (startActivityForResult ()로 자녀를 시작했다고 가정).
스레드 접근 :
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
// PUT YOUR CACHING CODE HERE
}
});
t1.start();
setResult( whatever );
finish();
당신은 또한 a를 사용할 수 있습니다 매니저 새 스레드에서 모든 것을 다시 전달 해야하는 경우.
비동기 접근법 :
new CacheDataTask().execute( data params );
set_result( whatever );
finish();
Asynctask는 새 스레드에서 무언가를 처리해야하지만 UI 프로세스와 다시 통신 할 수있는 상황을위한 것입니다.
과제를 뒤로 옮기는 것은 당신이 Activity
수명주기 이벤트.
두 번째를 시작해야합니다 Activity
~을 통해 Intent
사용 startActivity()
, 또는 두 번째로부터 결과를 다시받을 필요가있는 경우 Activity
, 사용 startActivityForResult()
. 이를 통해 사용자가 완료하면 콜백을받을 수 있습니다. Activity
그리고 당신의 첫 번째로 돌아갑니다 Activity
.
시작 Activity
그리고 결과를 얻는다 : http://developer.android.com/reference/android/app/activity.html#startingActivities
노력하다:
Intent toNextActivity = new Intent(CurrentActivity.this,
NextActivity.class);
CurrentActivity.startActivity(toNextActivity);
이 방식으로 사용하면 CurrentActivity의 onpause () 메소드가 호출되고 CurrentActivity에 정적 변수 (미디어 플레이어 개체와 같은)가 있으면 계속 존재합니다 (또는 재생중인 경우 재생).
응용 프로그램에서 사용하고 있지만 서비스로 더 좋은 방법을 찾았습니다.
이것이 당신을 도울 수 있기를 바랍니다!
간단히
보호 된 void minimizeApp () {의도 startMain = new Quits (intent.action_main); startMain.AddCategory (intent.category_home); startMain.setflags (intent.flag_activity_new_task); startActivity (startMain); }