Jas*_*ele 3 c# xamarin.android mvvmcross
在我的应用程序中,我正在创建一个广播接收器,它将监听网络变化.在OnReceive中,它将检查设备是否刚刚连接到WiFi,然后在后台开始上传.将不会显示任何活动,因此在没有启动活动的情况下初始化框架需要做什么?我不需要框架的任何页面导航部分,因此精简初始化将是最佳的.
private override void OnReceive(Context context, Intent intent)
{
bool isWifiConnected = false;
bool isMobileConnected = false;
if (intent.Action.Equals(ConnectivityManager.ConnectivityAction))
{
NetworkInfo networkInfo = (NetworkInfo)intent.GetParcelableExtra(ConnectivityManager.ExtraNetworkInfo);
if (networkInfo.IsConnected)
{
if (networkInfo.Type == (int)ConnectivityType.Wifi)
{
isWifiConnected = true;
}
if (networkInfo.Type == (int)ConnectivityType.Mobile)
{
isMobileConnected = true;
}
}
}
if (isWifiConnected)
{
StartUp(); //What do I put in this private method?
}
Run Code Online (Sandbox Code Playgroud)
我现在已经对GitHub进行了一些更改,希望能够让你用它的BroadcastReceiver创建你的应用程序.
使用这些修改,您现在可以使用以下代码从任何应用程序组件 - 活动,BroadcastReceiver,服务或ContentProvider初始化核心应用程序:
var setup = MvxAndroidSetupSingleton.GetOrCreateSetup(this.ApplicationContext);
setup.EnsureInitialized(this.GetType());
Run Code Online (Sandbox Code Playgroud)
这些更改应该允许MvvmCross应用程序在"Intent.ActionMain"场景中以及在以下情况下启动:
对这些变化的更长篇解释是http://slodge.blogspot.co.uk/2012/05/android-application-initialization-and.html