-1

我的应用程序的自动启动功能有问题。

我搜索了论坛,看到了很多建议,似乎没有一个有效,我不知道为什么。

这是BootUpReciver.java

package com.???.???;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;

public class BootUpReciver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
        //Intent pushIntent = new Intent(context, BackgroundService.class);
        //context.startService(pushIntent);

        Toast.makeText(context, "Device Booted", Toast.LENGTH_LONG).show();
        Log.d("TAG","Device Booted");

    }
}
}

这是我的清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.???.???"
android:versionCode="1"
android:versionName="1.0" >

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

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="17" />

<application
    android:theme="@android:style/Theme.Holo"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >

    <receiver android:name=".BootUpReciver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>

    <activity
        android:name="com.???.???.MainActivity"
        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>

当我重新启动手机时,我什至看不到 Toast,为什么?我应该怎么办?我需要自动启动以获取一些 sharedprefs 并在每次启动时将值写入文件。

谢谢。

4

1 回答 1

0

在测试时,我发现如果我在 onReceive 中显示 toast,那么它没有显示。但是,如果我在 onReceive 中启动一个活动,那么它就可以工作。所以你也可以检查一下。开始一项活动或服务并在那里执行您的任务。

于 2013-04-18T18:40:27.383 回答