в нативном Android, вы можете использовать PowerManager.isIgnoringBatteryOptimizations()
логическое значение, чтобы определить, игнорирует ли приложение уже оптимизации, т. Е. Находится ли приложение в белом списке.
@ReactMethod public void isAppIgnoringBatteryOptimization(Callback callback){
String packageName = getReactApplicationContext().getPackageName();
PowerManager pm = (PowerManager) getReactApplicationContext().getSystemService(Context.POWER_SERVICE);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
callback.invoke(pm.isIgnoringBatteryOptimizations(packageName));
}else{
callback.invoke(true);
}
, а затем в js
isAppIgnoringBatteryOptimization: function(callback) {
jobModule.isAppIgnoringBatteryOptimization(ignoringOptimization => {
if (ignoringOptimization != null) {
callback("", ignoringOptimization);
} else {
callback("error", null);
}
});
}
https://github.com/vikeri/react-native-background-job/ - хорошая библиотека, которая видит все крайние случаи фонового выполнения
Если вы хотите попросить пользователя отключить его - попросите
Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
разрешение
из
Простой способ сделать это должно использовать свойство DataContext.Log:
using (MyDataContext ctx = new MyDataContext())
{
StringWriter sw = new StringWriter();
ctx.Log = sw;
// execute some LINQ to SQL operations...
string sql = sw.ToString();
// put a breakpoint here, log it to a file, etc...
}
При столкновении с этими выходит тип, я использовал профилировщика SQL. В основном включая профилировщика, ставя точку останова сохранение/обновление, очищая профилировщика и затем выполняя просто тот оператор. Оттуда у меня есть весь SQL, который выполнялся, и я вижу то, что было сгенерировано. [Я главным образом делал это через DataServices, таким образом.SaveChanges () является очень удобным местоположением для помещения точки останова]
Запишите тест для изоляции части или частей кода, доставляющего все неприятности. Установите DataContext.Log = Консоль. Запустите тест с testrunner (NUnit, MSTest, и т.д.). testrunners обычно отображают что-либо распечатанное к Консоли. Наряду с результатами испытаний.
Вы могли использовать профилировщика SQL для просмотра SQL, поскольку он поражает SQL-сервер.
Если Вы хотите видеть то, что находится на самом деле в массивах изменений, необходимо использовать:
context.GetChangedSet();
MSDN - http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.getchangeset.aspx
Можно затем просмотреть каждый SQL-оператор, прежде чем он будет отправлен на сервер.
Ваша последняя точка вызова должна использовать способность 2008 VS отладить через платформу.NET.
используйте SQL Profiler. Это - Ваш друг и поставлется с SQL. можно просмотреть любые SQL-операторы, которые выполняются с полным контролем над фильтрацией.
Я должен согласиться с Bradley Grainger, использующим свойство DataContext.Log, лучший способ видеть выполняемый sql.