MainActivity.Java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_HEADSET_PLUG);
filter.addAction(Intent.ACTION_POWER_CONNECTED);
filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
filter.addAction(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
registerReceiver(new MyReceiver(), filter);
}
}
MyReciever.Java
public class MyReceiver extends BroadcastReceiver {
MainActivity mActivity;
@Override
public void onReceive(Context arg0, Intent arg1) {
mActivity = (MainActivity) arg0;
TextView tv = (TextView)mActivity.findViewById(R.id.textView1);
if(arg1.getAction().equals(Intent.ACTION_HEADSET_PLUG)) {
tv.setText("Headset Plugin ");
} else if(arg1.getAction().equals(Intent.ACTION_POWER_CONNECTED)) {
tv.setText("Power Connected ");
} else if(arg1.getAction().equals(Intent.ACTION_POWER_DISCONNECTED)) {
tv.setText("Power Disconnected ");
} else if(arg1.getAction().equals(Intent.ACTION_SCREEN_ON)) {
tv.setText("Screen ON ");
} else if(arg1.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
tv.setText("Screen OFF ");
}
}
}
Короткий ответ: LinqToSql имеет несколько подобных особенностей, и иногда вам приходится использовать обходные пути ...
Параметр Linq2Sql LoadWith просто вызывает внутреннее соединение между таблицами базы данных , так что вы можете вызвать подобное поведение, переписав оператор Linq на что-то вроде (пожалуйста, простите за опечатки, я привык писать Linq в синтаксисе VB ...):
var x = from topic in db.Topics
join topicMap in topic.TagTopicMaps
orderby topic.dateAdded descending
group topicMap by topicMap.topic into tags = Group;
Этот синтаксис может быть ужасно неправильным, но основная идея заключается в том, что вы заставляете Linq2Sql оценивать соединение между Topics и TagTopicMaps, а затем используете группировку (или "групповое соединение", "let" и т. д.), чтобы сохранить иерархию объектов в наборе результатов.
Установите для EnabledDefferedLoad в вашем классе datacontext значение false.