我正在尝试将单身经理添加到Android服务中.问题是注入的管理器与ViewModel中的管理器不同.
匕首组件
@Singleton
@Component(modules = {ApplicationModule.class, AppScreenModule.class, ServiceModule.class})
public interface AppComponent {
void inject(App application);
void inject(OpportunisticService opportunisticService);
@Component.Builder
interface Builder {
AppComponent build();
Builder applicationModule(ApplicationModule applicationModule);
}
}
Run Code Online (Sandbox Code Playgroud)
模块
@Module
class ApplicationModule {
private final App mApp;
ApplicationModule(App app) {
mApp = app;
}
@Provides
@Named("ApplicationContext")
Context provideContext() {
return mApp.getApplicationContext();
}
@Provides
App provideApplication() {
return mApp;
}
@Provides
PeersManager providePeersManager() {
return new PeersManager();
}
}
@Module
abstract class ServiceModule {
@ContributesAndroidInjector
abstract OpportunisticService bindOpportunisticService();
}
Run Code Online (Sandbox Code Playgroud)
初始化 …
我有一些代码首先必须运行AndroidSchedulers.mainThread(),然后必须执行HTTP请求,因此必须运行Schedulers.io(),并在UI 上处理结果,所以回到AndroidSchedulers.mainThread().
我收到InterruptedIOException从切换时AndroidSchedulers.mainThread()到Scheulers.io().
这是一些代码:
Model model = getModel();
Completable.fromAction(
new Action0() {
public void call() {
mSubject.onNext(model)
}
})
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(Schedulers.io())
.andThen(fetchFromServer())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(/* handle success and error */);
...
public <T> Single<T> fetchFromServer() {
Request request = new Request(); // some request from server, not important
return bodyFrom2(request);
}
public <T> Single<T> bodyFrom2(final Request<T> request) {
return Single.defer(new Callable<Single<T>>() {
@Override
public Single<T> call() throws Exception { …Run Code Online (Sandbox Code Playgroud) 我正在研究用于创建Windows 8.1应用程序的"Contose Cookbook"培训.
通过第一个实验室,我看到了类似的东西variable += function;.该函数没有paranthesis,据我所知,你可以创建没有paranthesis的函数,这些属性是属性,但你必须用它们调用它们.
这是我发现的一个类:
namespace ContosoCookbook
{
sealed partial class App : Application
{
public App()
{
this.InitializeComponent();
this.Suspending += OnSuspending;
}
private async void OnSuspending(object sender, SuspendingEventArgs e)
{
var deferral = e.SuspendingOperation.GetDeferral();
await SuspensionManager.SaveAsync();
deferral.Complete();
}
...
}
}
Run Code Online (Sandbox Code Playgroud)
什么类型的调用或函数是接受它的.
来自msdn 的Application.Suspending事件.