2014-10-17 3 views
1

다른 응용 프로그램에서 응용 프로그램을 시작하는 가장 좋은 방법은 무엇입니까?다른 응용 프로그램에서 응용 프로그램을 시작하는 가장 좋은 방법은 무엇입니까?

Intent i; 
    PackageManager manager = getPackageManager(); 
    try { 
     i = manager.getLaunchIntentForPackage("XXX"); 

     if (i == null) 
      throw new PackageManager.NameNotFoundException(); 
     i.addCategory(Intent.CATEGORY_LAUNCHER); 

     startActivity(i); 

을 나는 응용 프로그램을 시작할 수 있습니다

내가하고 있어요.

내 문제는 응용 프로그램이 실행 중이면 처음부터 응용 프로그램을 시작하지 않고 상태를 유지하고 마지막 활동을 표시해야한다는 것입니다 (SplashScreen).

"홈 버튼"을 클릭하여 응용 프로그램을 시작하고 "작업 관리자"에서 응용 프로그램을 선택하면 배경으로 가기 전의 상태를 유지하면서 전경으로갑니다.

다른 플래그를 사용하지 않고 시도했습니다. 설정이 내 응용 프로그램에서 수행 중이어야하며, 응용 프로그램에서 시작해야합니다.

미리 도움을 주셔서 감사합니다.

+0

이 답변은 C#,하지만 : [이걸보고 싶을 수도 있습니다] (http://stackoverflow.com/questions/7522228/saving-state-between-program-restarts) –

+1

가끔은 진짜 ppl 그냥 생각 downvote 게시물 labled 'android'(나는 더 이상 죄송합니다 더 이상 도움이 안됨) – JBA

+0

다른 응용 프로그램을 호출하는 이유를 지정하십시오 ... 목적에 따라 대답 할 수 있도록 – koutuk

답변

0

아래 해결 방법으로 문제가 해결되었습니다. 이제 응용 프로그램을 닫거나 다시 시작하면 응용 프로그램을 시작할 수 있습니다 (모든 활동에서 다시 시작).

응용 프로그램입니다 (실행기) 시작 코드 :

Intent i; 
    PackageManager manager = getPackageManager(); 
    try 
    { 
     i.addFlags(0); 
     i.setPackage(null); 

     if (i == null) 
      throw new PackageManager.NameNotFoundException(); 

     startActivity(i); 

    } 
    catch (PackageManager.NameNotFoundException e) 
    { 
    } 

내 응용 프로그램 시작이 다음 매니페스트 :

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="14" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.VIBRATE" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> 
    <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:label="@string/app_name" 
      android:name=".Main" > 

      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity android:name=".Screen2" 
      android:label="@string/screen2Title" 
      android:configChanges="keyboard|keyboardHidden|orientation|screenLayout" 
      android:windowSoftInputMode="adjustResize" 
      android:launchMode="singleTask" > 
      </activity> 
     <activity android:name=".Screen3" 
      android:label="@string/screen3Title" 
      android:configChanges="keyboard|keyboardHidden|orientation|screenLayout" 
      android:windowSoftInputMode="adjustResize" 
      android:launchMode="singleTask" > 

     </activity> 

    </application> 

</manifest> 

이제 응용 프로그램이 적없이, 어떤 활동 재개 루트 활동으로 이동하십시오.

+0

나는 당신의 질문이나 당신의 대답을 이해하지 못했습니다. 작동 시키려면 어떻게 변경 했습니까? 그런데 이것이 정답이라면 다음과 같이 받아 들여야합니다. –

+0

이것은 더 많은 정보와 동일한 문제입니다 : http://stackoverflow.com/questions/26532206/launch-an-application-from-another-application-resumes-always-to-root-activity –

관련 문제