3

我正在尝试让我的应用程序在启动时自动启动,它会在启动应用程序时发生错误

这是我的清单和“自动启动器”的程序文件:

manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="this.bad.file"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="15" />

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <receiver
        android:name="autoBot"
        android:enabled="true"
        android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>
</application>

</manifest> 

这是我所说的“AutoBot”(不是因为垃圾邮件的原因,我只是喜欢变形金刚):

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

public class autoBot extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
        Intent startUp = new Intent(context, MainActivity.class);
        context.startActivity(startUp);
    }
}  

因此,我们有它!

4

1 回答 1

1

在您的清单中,您遗漏了类的重要名称,通常可以缩写为 [dot][ClassName] 或完整的包名,例如.autoBot或参见下面的示例:

<receiver android:name="this.bad.file.autoBot">
    <intent-filter>
       <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

在您的广播接收器中:

public class autoBot extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Intent startUp = new Intent(context, MainActivity.class);
        context.startActivity(startUp);
    }
}  

@Override注意类上的用法onReceive

通常推荐的正常路线是,在启动时启动警报,并在警报到期时收听广播,这样您的活动就不会占用启动,并且允许启动过程“解决”就一点点。

于 2012-07-12T20:22:01.423 回答