-1

我是 Eclipse 和 Java 开发的新手,我正在尝试在启动时启动一项活动。我已经阅读了多个讨论该主题的线程,虽然我设法在启动时启动了应用程序,但它崩溃了。

这是我的代码:

AndroidManifest.xml:

<!--
Below the <manifest> opening tag:
-->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<!--
Inside the <application> tag:
-->
<receiver android:name="com.example.Autostart">  
        <intent-filter>  
            <action android:name="android.intent.action.BOOT_COMPLETED" />  
        </intent-filter>  
</receiver>

<service android:name="com.example.service" android:enabled="true" />

自动启动.java:

package com.example;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class Autostart extends BroadcastReceiver{
    @Override
    public void onReceive(Context arg0, Intent arg1) 
    {
        Intent intent = new Intent(arg0, service.class);
        arg0.startService(intent);
    }
}

服务.java:

package com.example;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

public class service extends Service{

    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }

    @Override
    public void onStart(Intent intent, int startid)
    {
        Intent intents = new Intent(getBaseContext(),checker.class);
        intents.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intents);
        Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
    }

}

我的检查器类有一个 OnCreate 函数,它改变了一些设置值。

当我启动手机时,我唯一看到的是“YourAppName 已停止工作”,这意味着应用程序已崩溃。我没有看到任何 Toast 消息。

当我通常打开我的应用程序并阅读应该在启动时写入的设置时,什么都没有。

4

2 回答 2

0

问题是我没有向清单文件声明我的活动。

于 2013-09-15T07:45:55.583 回答
0

在您的清单中进行这样的更改并尝试:

  <receiver android:enabled="true" android:name=".Autostart"
    android:permission="android.permission.RECEIVE_BOOT_COMPLETED">

    <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
    </receiver>
于 2013-09-12T11:18:11.167 回答