0
我不知道如何在Android的其他類中使用上下文參數調用方法BroadcastReceiver
?如何發送上下文參數到Android中的其他類方法?
下面是我的代碼,Utils.resetTvProviderDB(this)
在TvSettingReceiver.java
是不可能調用Utils.java。
TvSettingReceiver.java
public class TvSettingReceiver extends BroadcastReceiver {
public static final String ACTION_SETTING_CHANGED =
"com.lge.tvsettings.ACTION_SETTING_CHANGED";
public static final String KEY_SETTING_CHANGED_TYPE =
"setting_changed_type";
public static final int TYPE_DISPLAY_MODE = 1;
public static final int TYPE_CLOSED_CAPTION = 2;
public static final int TYPE_LANGUAGE = 3;
public static final int TYPE_DVB = 4;
public static enum CurrentDVB {DVBT, DVBC};
public static CurrentDVB currentDVB;
public TvSettingReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
String intentAction = intent.getAction();
if(intentAction.compareTo(ACTION_SETTING_CHANGED)==0){
handleTvSettingChanged(context, intent);
}
else if(intentAction.compareTo(Intent.ACTION_LOCALE_CHANGED)==0){
handleLocaleChanged(context, intent);
}
}
。 。 。
private void deleteAllChannelDB(CurrentDVB newDVB) {
if (currentDVB != newDVB) {
Utils.needToResetDtvDB = true;
/* reset Dvbt Channels Objects */
DVBTInputService.resetDvbtChannelsObjectsList();
/* remove tv provider all dbs */
try {
Utils.resetTvProviderDB(this); // It's impossible
} catch (Exception e) {
e.printStackTrace();
}
}
}
Utils.java
class Utils {
public static void resetTvProviderDB(Context context) throws Exception {
Uri channelUri = TvContract.buildChannelsUriForInput(
"com.lge.tvinput/.DVBTInputService", false);
if (DEBUG)
Log.d(TAG, " resetTvProviderDBforDvbt uri " + channelUri);
String[] projection = { TvContract.Channels._ID };
Cursor cursor = null; // , cursor2 = null;
。 。 。