一般我们写应用程序的时候都会写明程序的入口,即将我们想要启动的第一个Activity添加上Intent-filter:
这里为了方便说明,我们以MainActivity为例
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
这样当我们运行该应用程序后在桌面就会显示该应用程序的Icon,同时点击图标就会启动MainActivity。
那么如果我们想安装一个没有图标的应用程序,需要怎么实现呢?
1.将MainActivity的Intent-filter中的category注释掉,或者改为DEFAULT:
【这里需要说明下,因为隐藏图标后就无法通过点击icon的方式启动app了,因此后面打算使用隐式intent的方式来实,而android.intent.action.MAIN可能会与系统已安装应用产生冲突(亲自试过,的确是有冲突的),所以我们采用添加一个自定义的action,同时将category设置为DEFAULT的方式】
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.start" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
这样点击运行图标在手机安装改应用程序即可。
另外在另一个app中,添加一个点击事件:
findViewById(R.id.tv1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//打开app
Intent intent = new Intent();
intent.setAction("android.intent.start");
startActivityForResult(intent,REQ_OPEN_APK);
}
});
点击即可打开我们之前隐藏icon的Activity