이 상황에서는 singleTask
manifest.xml에서 접근 한 두 가지 중 하나 또는 Activity의 onResume()
& onDestroy()
메소드에서 각각 플래그를 사용합니다 .
를 들어 첫 번째 솔루션 : 내가 사용하는 것을 선호 singleTask
보다는 매니페스트의 활동을 위해 singleInstance
사용에 따라, singleInstance
나는 어떤 경우에 활동이 실행중인 앱에서 두 개의 별도의 응용 프로그램 창을 가지고 결과 자체에 대한 새로운 별도의 인스턴스를 생성하는 것을 알아 냈 bcakground에 추가 메모리 할당 외에 사용자가 앱보기를 열어 재개 할 일부 앱을 선택할 때 매우 나쁜 사용자 경험을 초래할 수 있습니다. 따라서 더 나은 방법은 다음과 같이 manifest.xml에서 활동을 정의하는 것입니다.
<activity
android:name=".MainActivity"
android:launchMode="singleTask"</activity>
여기에서 활동 시작 모드를 확인할 수 있습니다 .
들어 두 번째 솔루션, 당신은 예를 들어, 정적 변수 또는 환경 변수를 정의 할 수 있습니다 :
public class MainActivity extends Activity{
public static boolean isRunning = false;
@Override
public void onResume() {
super.onResume();
isRunning = true;
}
@Override
public void onDestroy() {
super.onDestroy();
isRunning = false;
}
}
이 활동을 시작하려면 다른 쪽에서 다음을 확인하십시오.
private void launchMainActivity(){
if(MainActivity.isRunning)
return;
Intent intent = new Intent(ThisActivity.this, MainActivity.class);
startActivity(intent);
}