我发现了几乎相同的问题:How to start an Intent if context is not Activity Context but Application Context
但是我在使用https://stackoverflow.com/a/9238105/6593395
时会这样做CREATE TABLE #A
(
value NUMERIC(22,6), Rank INT, Type VARCHAR(10)
)
INSERT INTO #A VALUES
(1.5, 5,'alpha'),
(2.4,4,'alpha'),
(3.6,3,'alpha'),
(4.63,2,'alpha'),
(5.36,1,'alpha')
SELECT [5],[4],[3],[2],[1]
FROM
(select value,RANK,TYPE from #A ) AS SourceTable
PIVOT
(
MAX(value)
FOR RANK IN ([1],[2],[3],[4],[5])
) AS PivotTable;
错误日志:
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if ("android.intent.action.BOOT_COMPLETED".equals(action)) {
Intent applicationIntent = new Intent(context, myCamApplication.class);
applicationIntent.setAction(myCamApplication.class.getName());
applicationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(applicationIntent);
我已将此myCamApplication类注册为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?
那么,任何人都可以提供帮助吗?
答案 0 :(得分:2)
您无法启动Application类。您只能启动活动。
从例如:
更改您的代码Intent applicationIntent = new Intent(context, myCamApplication.class);
到
Intent applicationIntent = new Intent(context, myCam.class);
答案 1 :(得分:1)
尝试创建其他活动并将其添加到Manifest.xml
并查看是否有任何错误,不要忘记添加此代码<activity android:name=".yourSecondActivity" />
并开始新的Intent
答案 2 :(得分:0)
这里的问题是你不了解基本原则。在android中你只有4个组件:Activity,Service,ContentProvider,BroadcastReceiver。因此,在您的清单中,您声明您拥有应用程序(名称,属性......),并且在应用程序中您拥有活动,服务,接收者,内容提供者。
您的应用程序不是您的Application类。因此,要启动应用程序,您应该启动默认活动:
Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//because we use Application context
startActivity(intent);
P.S。您的Application类将自动启动。应用程序的生命周期如下: 应用程序类的开始 - &gt;组件的开始(服务,活动......) - &gt;组件停止(服务...) - &gt;停止申请类
P.S.S。 没有必要检查onReceive中的操作 - 它将出于唯一的原因:
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>