2013-08-29 3 views
1

내가 다음 코드를 통해 안드로이드 바로 가기를 만들이 죽일어떻게 새로운 응용 프로그램 인스턴스를 만들 안드로이드 바로 가기를 클릭하지 않도록하고, 이전

다음
 

    Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");     shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,getString(R.string.app_name)); 
    Intent shortcutIntent = new Intent(); 
    shortcutIntent.setClassName(this,MainActivity.class.getName()); 
    shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
    shortcut.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    shortcut.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 

    ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher); 
    shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes); 
    sendBroadcast(shortcut); 

난 내 응용 프로그램을 열고 마침내 BActivity 같은 일부 활동에서, 내가 홈 화면으로 전환하고 바로 가기를 클릭하면, 위의 코드와 같이 MainActivity에있는 응용 프로그램이 나오게됩니다.이 문제를 피할 수 있고 이미 생성 된 경우 응용 프로그램을 포 그라운드로 만들 수 있습니까?

+0

어쩌면이 당신을 도울 수

if(!isTaskRoot()){ finish(); return; } 

이 LaucherClass의에서 onCreate에 위의 코드를 추가하여 다음과 같은 수 있습니다 http://stackoverflow.com/questions/12303663/android-resume-app-from- 이전 위치 –

답변

2

: 다음과 같은

@Override 
protected void onPause() { 
    super.onPause(); 
    SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE); 
    Editor editor = prefs.edit(); 
    editor.putString("lastActivity", getClass().getName()); 
    editor.commit(); 

}

그리고 디스패처 활동을 나는 올바른 방법을 찾는다. 한마디로 이것은 android와 workarou의 버그이다. 차,

0

공유 환경 설정을 사용하여이 작업을 수행 할 수 있습니다.

그래서 모든 활동에서 자동으로 다시 시작하려면 : 마지막으로

public class Dispatcher extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    Class<?> activityClass; 

    try { 
     SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE); 
     activityClass = Class.forName(
      prefs.getString("lastActivity", Activity1.class.getName())); 
    } catch(ClassNotFoundException ex) { 
     activityClass = Activity1.class; 
    } 

    startActivity(new Intent(this, activityClass)); 
} 

}

+0

감사합니다 아룬,하지만 난 여전히 응용 프로그램 서랍에서 아이콘을 클릭하기 때문에 애플 리케이션이 존재하는 활동 스택과 함께 전경에 왔기 때문에, 내가 무엇을하고 싶어하는지 더 편리한 방법이 있는지 궁금해. 당신이 제공하는 솔루션은 기존의 액티비티 스택을 파괴 할 것입니다. 필자는 이것을 피할 것입니다. 일부 activity_flag가이를 수행 할 수도 있지만 문서를 읽고 거의 읽지는 않습니다. – Minami