Android 如何启动应用程序上下文的意图
我发现了几乎相同的问题: 但我在使用时没有做到这一点 错误日志:Android 如何启动应用程序上下文的意图,android,android-intent,android-context,Android,Android Intent,Android Context,我发现了几乎相同的问题: 但我在使用时没有做到这一点 错误日志: Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.fenchtose.asyncamera/com.eason.mycamera.myCamApplication}; have you declared this activity in your AndroidManifest.xml?
Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.fenchtose.asyncamera/com.eason.mycamera.myCamApplication}; have you declared this activity in your AndroidManifest.xml?
我已经在AndroidManifest.xml中将这个myCamApplication类注册为我的应用程序类
<application
android:name=".myCamApplication"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<receiver
android:name=".BootComplete"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<activity
android:name=".myCam"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
因此,任何人都可以提供帮助?尝试创建其他活动并将其添加到您的
Manifest.xml
中,查看是否有任何错误不要忘记添加此代码
并启动新的Intent
您无法启动应用程序类。您只能开始一项活动
更改您的代码,例如:
Intent applicationIntent = new Intent(context, myCamApplication.class);
到
这里的问题是你不理解基本原理。在android中,你只有4个组件:活动、服务、内容提供者、广播接收者。因此,在清单中,您声明您拥有应用程序(名称、属性…),而在应用程序中,您拥有活动、服务、接收者和内容提供者 您的应用程序不是您的应用程序类。因此,要启动应用程序,应启动默认活动:
Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//because we use Application context
startActivity(intent);
另外,你的应用课程将自动开始。应用程序的生命周期如下:
启动应用程序类->启动组件(服务、活动…)->停止组件(服务…)->停止应用程序类
附言。
无需在onReceive中检查操作-它将出现的唯一原因是:
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
您能提供您的代码吗?这样可以更容易地帮助您在AndroidManifest.xml中声明此活动?@Christopher是的,我已经包含了AndroidManifest。xml@Marat请看一看,感谢新的意图(上下文,myCamApplication.class);是错误的,您需要在此提供活动类。我可以通过context.startActivity成功启动活动上下文。但无法为应用程序类执行此操作您是否使用了Intent Intent=new Intent(main activity.this,yourSecondActivity.class);MainActivity.this.startActivity(意图)代码>???我已经包括了代码,请看一看,谢谢。我不确定这是否可能,这里有一个类似的问题:我不确定,你想实现什么?无法通过startActivity启动应用程序类!我只想在启动完成时在应用程序的构造函数中执行一次操作。如果您的BroadcastReceiver收到消息,我认为应用程序类已经实例化了?否则你就没有上下文实例了,还是没有?
Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//because we use Application context
startActivity(intent);
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>