2

我正在尝试运行一个简单的启动接收器。我只需要从我的数据库中获取一条记录(确实存在 - 已测试),我正在使用 Toast 消息对其进行测试(这可能吗?)。手机启动时没有任何反应:

接收者 :

    public class OnBootReceiver extends BroadcastReceiver {

    int milibaza;    


    @Override 
    public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 


    Cursor cursor = DatabaseManager.getAllData(); 
    if(cursor !=null) 
    { 
    cursor.moveToFirst();    
    milibaza = cursor.getInt(2); 
    Toast.makeText(context, ((new StringBuilder("Vrijeme u bazi").append(milibaza).toString())), Toast.LENGTH_LONG).show();
cursor.close();   
    }              
    } 
    }

获取所有数据方法:

public static Cursor getAllData() 
    { 
        Cursor cursor=null; 
        if(db!=null)
        { 
            cursor=db.query(TABLE_NAME, new String[] { TABLE_COLUMN_ID, TABLE_COLUMN_ONE, TABLE_COLUMN_TWO }, null, null, null, null, null); 
        } 

        return cursor; 
        }

清单中的值连接到我正在尝试运行的接收器:

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

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

2 回答 2

1

确保在启动手机之前实际运行您的应用程序。如果您在重新启动前强制停止应用程序,或者您在安装 APK 后没有运行应用程序,您的广播接收器将不会收到任何消息。

于 2013-02-06T22:54:31.123 回答
0

我认为您不能使用 BroadcastReceiver onReceive() 函数的上下文来启动 Toast。尝试使用 Intent 来启动应用程序活动。

于 2013-02-07T00:16:32.177 回答