2013-01-13 66 views
1

我創建了一個類來管理SQLite數據庫。它的代碼的部分如下:如何在BroadcastReceiver中打開數據庫

public class Database extends SQLiteOpenHelper { 

private static final String DATABASE_NAME = "name"; 
private static final int DATABASE_VERSION = 1; 

public Database (Context ctx) { 
    super(ctx, DATABASE_NAME, null, DATABASE_VERSION); 
} 

然後,我已創建的另一個類,它是(延伸BroadcastReceiver)的SMS聆聽者。這裏面類的,我不能用下面的命令創建一個數據庫:

db = new Database(this); 

,因爲我收到此錯誤信息:

The constructor Database(SmsListener) is undefined 

我應如何修改代碼,可以打開從數據庫連接在SmsListener類裏面?

回答

6

你的onReceive()方法在BroadcastReceiver得到一個Context通過,使用。

@Override 
public void onReceive(Context context, Intent intent){ 
    db = new Database(context); 
    //more stuff 
} 

另外要注意,一個BroadcastReceiver裏面,你只能保證的執行時間爲10秒,在這之後,Android的可能會殺死你的接收機。因此,快速處理您正在做的事情,如果數據庫操作冗長,請考慮使用單獨的Thread

+2

+1 for 10秒info –

0

您的Database構造函數以Context作爲其唯一參數。錯誤消息告訴您thisSmsListener,它不延伸Context

相關問題