我遇到这样一个情况:
 我创建了一个app,并且在manifest中注册了一个设置壁纸的activity。当我的应用不在后台运行的时候,别的应用设置壁纸,还是能找到我的activity,造成无法设置。
   我的思路是:在我的应用没运行的时候先隐藏掉该activity。 简单的说,如何在程序中隐藏一个已经在menifest中注册好的activity?
  
我尝试过调用sdk的api: 
PackageManager pm = getPackageManager();pm.setComponentEnabledSetting(new ComponentName(this,"com.my app.WallpaperChooser"),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);结果是手机挂了,不明白什么意思

解决方案 »

  1.   

    能找到你的activity是因为你在menifest中为activity设置了intent-filter,例如:<intent-filter>
        <action android:name="android.intent.action.SET_WALLPAPER" />
    </intent-filter>
    别的app启动你的activity时肯定没有携带你的activity中必须的参数,导致运行error你可以把intent-filter去掉,也可以在activity中判断,不合法时直接finish
      

  2.   

    http://blog.csdn.net/shen332401890/article/details/8673494  看一下 这个文章 或许有帮助
      

  3.   


    但是不设置这个intent-filter,我怎么调用这个activity呢?