3

コードに従って別のアクティビティから 1 つのアクティビティを無効にしたいのですが、現在のアプリを強制終了するという問題が発生します。SDK のバージョンは 4.0 です。

 @Override
 public void onCreate(Bundle savedInstanceState) {  
     PackageManager pm = getPackageManager();

     pm.setComponentEnabledSetting(newComponentName(this,
                                    "com.xxx.launcher.desktop.testActivity"),
                                    PackageManager.COMPONENT_ENABLED_STATE_DISABLED,   
                                    PackageManager.DONT_KILL_APP);

}

設定するsthが不足していますか?

4

2 に答える 2

5

http://developer.android.com/reference/android/content/pm/PackageManager.html#DONT_KILL_APPをご覧ください。

PackageManager.DONT_KILL_APP未定義の動作につながる可能性があるため、を使用するときは少し注意する必要があります。特にアクティビティがそれ自体を無効にしようとしている場合。別のアクティビティをターゲットにしている場合は問題ありませんが、クリアしようとしているアクティビティは

への呼び出しComponentNameが間違っているようです。あなたはおそらく電話したいと思うでしょうnew ComponentName(this.getApplicationContext(), testActivity.class)。または、 を使用できますnew ComponentName("com.xxx.launcher.desktop","com.xxx.launcher.desktop.testActivity")。最初の引数は AndroidManifest.xml ファイル内のパッケージで、2 番目の引数はComponentName. ComponentName の設定に関する情報については、次の SO の質問を参照してください詳細については。

于 2013-05-07T01:52:19.990 に答える