我正在获得一个VOIP套接字,以便在iOS应用程序中在后台运行.
我的连接工作正常,但当我的应用程序进入后台时它不会被唤醒.但是,如果我重新打开应用程序,它会响应它在睡眠时收到的任何消息.
我像这样设置我的流:
CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault,
(CFStringRef) @"test.iusealocaltestserver.com",
5060,
&myReadStream,
&myWriteStream);
CFReadStreamSetProperty ( myReadStream,
kCFStreamNetworkServiceType,
kCFStreamNetworkServiceTypeVoIP
);
CFSocketNativeHandle native;
CFDataRef nativeProp = CFReadStreamCopyProperty(myReadStream, kCFStreamPropertySocketNativeHandle);
CFDataGetBytes(nativeProp, CFRangeMake(0, CFDataGetLength(nativeProp)), (UInt8 *)&native);
CFRelease(nativeProp);
CFSocketRef theSocket = CFSocketCreateWithNative(kCFAllocatorDefault, native, 0, NULL, NULL);
CFSocketGetContext(theSocket,&theContext);
CFOptionFlags readStreamEvents = kCFStreamEventHasBytesAvailable |
kCFStreamEventErrorOccurred |
kCFStreamEventEndEncountered |
kCFStreamEventOpenCompleted;
CFReadStreamSetClient(myReadStream,
readStreamEvents,
(CFReadStreamClientCallBack)&MyCFReadStreamCallback,
(CFStreamClientContext *)(&theContext));
CFReadStreamScheduleWithRunLoop(myReadStream, CFRunLoopGetCurrent(),
kCFRunLoopCommonModes);
Run Code Online (Sandbox Code Playgroud)
然后我的回调设置如下:
static void MyCFReadStreamCallback(CFReadStreamRef stream, CFStreamEventType type, void *pInfo);
static void MyCFReadStreamCallback (CFReadStreamRef stream, CFStreamEventType type, void *pInfo)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; …Run Code Online (Sandbox Code Playgroud) 我正在制作一个基于phonegap(cordova)的应用程序.我已经测试了一些,最近我在xcode中看到一条消息说"插件应该使用后台线程".那么可以在应用程序的后台运行cordova插件吗?如果是的话,请说明如何.谢谢!
我想与spring-mvc web应用程序并行运行后台进程.我需要一种方法来自动启动上下文加载.后台进程是一个实现的类Runnable.spring-mvc有一些设施吗?
我已经搜索了很多,以找到确切的答案,但没有找到任何答案.
很多人提到,我们应该& AT命令的结束并不等待回应.
例如,在后台运行bg.php,建议:
exec("/usr/bin/php bg.php &");
Run Code Online (Sandbox Code Playgroud)
但它对我不起作用.并且主脚本等待bg.php的完全执行.
我也读过某处在日志文件中写入bg.php输出,但我的后台脚本不会产生任何输出.它做了一些过程然后在数据库中写了一些东西.
我只是希望我的脚本运行bg.php而不要等它结束.
请帮我包括正确的代码.
您的应用程序在后台完成其操作后取则必须调用completionHandler块与三一点UIBackgroundFetchResult的状态:UIBackgroundFetchResultNoData,UIBackgroundFetchResultNewData或UIBackgroundFetchResultFailed.
一旦调用完成处理程序,操作系统如何处理这三个结果中的每一个?
我是iOS的新手.我正在研究应用程序需要运行一个任务,在后台线程中从服务器获取数据,因为我不想在主线程中锁定UI.这个任务需要很长时间,我尝试使用NSTimer,但它仍然锁定了UI.我的任务是在聊天屏幕中查看新消息,我需要每隔5秒调用一次此任务.如果我使用NSTimer,当输入文本时,文本似乎在此任务执行时冻结片刻.有没有办法在没有锁定UI的情况下处理此任务.请给我一些建议.非常感谢.
==更新代码==
- (void)performBackgroundTask
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//Do background work
if([[NSUserDefaults standardUserDefaults] boolForKey:@"LoggedIn"]) {
NSDictionary * userDictionary = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"SessionDictionary"];
NSString *authenKey= [userDictionary valueForKey:@"authToken"];
NSString* limit = @"1000";
[[LSDataManager sharedDataManager] getLatestMessagesWithAuthKey:authenKey andLimit:limit withBlock:^ (NSDictionary* responseDict)
{
if (responseDict) {
[self loadDataFromServer:responseDict];
NSArray* lastMessageArray= nil;
//filter message data
if (self.MessagesArray.count >0) {
if (!self.isSeller) {
lastMessageArray = [self filterMessageData:self.MessagesArray withProductID:self.productID withSellerID:self.receiverID withBuyerID:self.senderID];
}
else
{
lastMessageArray = [self filterMessageData:self.MessagesArray withProductID:self.productID withSellerID:self.senderID withBuyerID:self.receiverID];
}
NSLog(@"filter array %@",lastMessageArray);
if([lastMessageArray count] >0){ …Run Code Online (Sandbox Code Playgroud) 我可能没想到正确的方向.我对Dependency Injection和ASP.Net Core相当新.
我有一个ASP.Net核心网站,其中一个任务是将数据从Excel工作表导入用户将上传的数据库.excel表格可能很大,数据转换任务也很耗时,因此我希望在后台执行它们.即用户将上传工作表,响应将立即发送,后台作业/线程将导入数据.
我正在尝试通过以下方式运行后台作业:
Task.Run(() => ProcessImport(model));
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是Process导入方法调用具有存储库类的服务,这些存储库类通过作为Scoped添加的ASP.Net依赖注入容器访问AppDbContext,并且一旦响应被发回,就会释放上下文.我收到一个运行时异常,你不能在它被处置后使用上下文.
我的问题是,处理这种情况的最佳方法是什么?我应该制作AppDbContext单例吗?我应该在ProcessImport方法中创建一个新的AppDbContext实例,并将其传递给它吗?我看过DbContext不是线程安全的,所以这是一个好方法吗?
dependency-injection background-process entity-framework-core asp.net-core-mvc asp.net-core
我的Android 4+应用程序连接到自定义Web服务,该服务用于每隔几分钟同步一次数据.为了确保在线数据始终是最新的,我想在应用程序关闭/发送到后台时触发同步.
在iOS下这很容易:
applicationDidEnterBackground:在AppDelegate中收听beginBackgroundTaskWithName:开始您长时间运行的后台任务,并避免在任务仍在运行被暂停如何在Android上执行此操作?
第一个问题是,没有任何东西相当于applicationDidEnterBackground:.到目前为止我发现的所有解决方案都建议使用主要的Activities onPause()方法.但是,这会在主要Activity暂停时调用,这也是Activity在应用程序中启动另一个时的情况.接口的onActivityPaused()方法是正确的ActivityLifecycleCallbacks.
那么,如何检测应用程序(不只是一个Activity)是关闭还是发送到后台?
第二个问题是,我没有找到任何关于如何运行后台任务的信息.所有解决方案都指向简单的启动AsyncTask,但这真的是正确的解决方案吗?
AsyncTask将启动一项新任务,但当应用程序关闭/不活动时,此任务是否也会运行?我需要做什么,以防止应用程序和任务在几秒钟后被暂停?在应用程序完全暂停之前,如何确保任务可以完成?
android background-process android-lifecycle android-asynctask
我创建了一个将文件从一个文件夹移动到另一个文件夹的脚本。但由于原始文件夹是下载文件夹,我需要它始终在后台运行。
我还有一个标准的批处理文件,看起来像这样:
@py C:\\Python\Scripts\moveDLs.py %*
Run Code Online (Sandbox Code Playgroud)
我正在使用Windows 10。我找到了有关如何nohup在批处理文件中使用的 Linux 和操作系统信息。有 Windows 版本吗?
如果有需要每次重新启动或打开PC时都执行脚本吗?
另外,当您设法使其永久化时,您如何终止该过程?
非常感谢
我厌倦了在目标C中搜索符号^的含义.我已经在许多项目中看到过它,尤其是在后台运行任务中.我将链接
http://developer.apple.com/library/ios/#samplecode/StitchedStreamPlayer/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010092
,MyStreamingMovieViewController.m你可以在里面找到以下内容 - (IBAction)endScrubbing:(id)sender method.
timeObserver = [[player addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(tolerance, NSEC_PER_SEC) queue:dispatch_get_main_queue() usingBlock:
^(CMTime time)
{
[self syncScrubber];
}] retain];
}
Run Code Online (Sandbox Code Playgroud)
- (void)applicationDidEnterBackground:(UIApplication *)application
{
UIApplication* app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
// Clean up any unfinished task business by marking where you.
// stopped or ending the task outright.
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];
// Start the long-running task and return immediately.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// Do the …Run Code Online (Sandbox Code Playgroud) iphone objective-c background-process ios objective-c-blocks