android.intent.category.DEFAULT在Intent Filters的Category字段中使用的目的是什么?
我有一个有两个活动的应用程序,我希望能够在启动器中显示两个图标,每个图标在应用程序中启动相应的活动.
具体来说,我想要一个图标来启动我的主应用程序,另一个图标来启动我的设置活动.这可能吗?
这是我到目前为止所尝试的:
<activity android:label="MyApp" android:name=".MyApp">
<intent-filter>
<action android:name=".MyApp"/>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:label="Settings" android:name=".Settings">
<intent-filter>
<action android:name=".Settings"/>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
这会创建两个启动器图标,但它们都运行我的主应用程序而不是运行我的设置应用程序的第二个图标.我尝试过只有启动器类别,但后来我没有得到一个图标,所以看起来我也需要主要动作.
这是正确的方法还是应该在清单中声明两个应用程序?
在Android Studio之前,测试和Android应用程序涉及一个单独的Android项目,在构建生产时会被忽略.使用Android Studio,生产代码和测试代码存在于同一个项目中,该项目本身只有一组其他内容(清单,资产,资源).
在这种情况下,我如何定义仅用于测试的自定义Activity?对于允许启动任何Activity的Android,必须在清单中声明它.有没有办法解决这个限制?如何指示Android加载仅测试活动而不污染项目的生产方面?
我有两个完成的项目,一个用于显示书籍列表,另一个是用于阅读书籍的查看器应用程序.但是由于用户必须下载图书清单应用程序并且在下载后他必须下载查看器应用程序并且我想在开始时下载并安装它.当我尝试将查看器应用程序包含在图书列表应用程序中时,两者都已安装,但是当我制作apk然后使用apk时,只安装了图书列表应用程序.谁能告诉我这是什么问题?有没有办法将两个apk捆绑成一个?或者我该怎么办?
我在申请中有3个主要课程
1)意图服务:我根据通知消息和其他两类行为接收推送通知和打开活动.下面是执行该操作的代码
if(Global.isMainScreenRunning){
Intent intent = new Intent(this, MainScreen.class);
intent.setFlag(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
} else if(!Global.NotificationScreenRunning){
Intent intent = new Intent(this, NotificationScreen.class);
intent.setFlag(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
2)NotificationScreen:这是中介屏幕,因此如果应用程序未运行,将首先显示此屏幕,单击此屏幕的"是"按钮将打开MainScreen,此屏幕将完成.
3)主屏幕:这是显示地图的应用程序的主屏幕.它的核心行为是launchmode="singletask"在清单文件中提到的ts ,这意味着如果此屏幕正在运行,其数据将被发送到onNewIntent()方法而不是再次打开此屏幕.
现在流程中发生了什么
第1步:应用程序处于后台并推送通知.条件运行,第二个条件成功,并且拍摄通知屏幕意图
步骤2:在通知屏幕中,我点击ye按钮进入下一个主屏幕
步骤3:在主屏幕中,我处理此信息并执行任务或仅关闭应用程序
步骤4:再次接收新通知并且当应用程序未运行时进入第二条件并启动通知屏幕的意图但此时没有启动通知屏幕而不是提供其意图并且启动主屏幕是错误的.
这是我所面临的异常行为,而不是为意图主屏幕提供通知屏幕类别,这是根据android的完全不同的应用程序行为.
任何遇到此类问题的人的任何帮助将不胜感激.
编辑
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-feature android:name="android.hardware.camera" …Run Code Online (Sandbox Code Playgroud)