标签: background-process

iOS Voip Socket不会在后台运行

我正在获得一个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)

voip objective-c background-process cfreadstream ios4

21
推荐指数
2
解决办法
3万
查看次数

如何在后台运行cordova插件?

我正在制作一个基于phonegap(cordova)的应用程序.我已经测试了一些,最近我在xcode中看到一条消息说"插件应该使用后台线程".那么可以在应用程序的后台运行cordova插件吗?如果是的话,请说明如何.谢谢!

plugins background-process background-thread cordova

20
推荐指数
1
解决办法
2万
查看次数

如何在spring webapp中创建后台进程?

我想与spring-mvc web应用程序并行运行后台进程.我需要一种方法来自动启动上下文加载.后台进程是一个实现的类Runnable.spring-mvc有一些设施吗?

java spring multithreading background-process

18
推荐指数
3
解决办法
3万
查看次数

php后台进程使用exec函数

我已经搜索了很多,以找到确切的答案,但没有找到任何答案.

很多人提到,我们应该& AT命令的结束并不等待回应.
例如,在后台运行bg.php,建议:

exec("/usr/bin/php bg.php &");  
Run Code Online (Sandbox Code Playgroud)

但它对我不起作用.并且主脚本等待bg.php的完全执行.

我也读过某处在日志文件中写入bg.php输出,但我的后台脚本不会产生任何输出.它做了一些过程然后在数据库中写了一些东西.

我只是希望我的脚本运行bg.php而不要等它结束.

请帮我包括正确的代码.

php exec background-process

18
推荐指数
1
解决办法
2万
查看次数

在调用完成处理程序后,如何处理每个iOS后台获取UIBackgroundFetchResult类型?

您的应用程序在后台完成其操作后取则必须调用completionHandler块与三一点UIBackgroundFetchResult的状态:UIBackgroundFetchResultNoData,UIBackgroundFetchResultNewDataUIBackgroundFetchResultFailed.

一旦调用完成处理程序,操作系统如何处理这三个结果中的每一个?

objective-c background-process ios

18
推荐指数
1
解决办法
4740
查看次数

在iOS中定期在后台线程中运行任务

我是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)

multithreading objective-c background-process ios

18
推荐指数
2
解决办法
3万
查看次数

通过依赖注入执行后台任务的DbContext

我可能没想到正确的方向.我对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

18
推荐指数
2
解决办法
7669
查看次数

如何在Android应用关闭/设置为后台时执行后台任务?

我的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

18
推荐指数
2
解决办法
2万
查看次数

如何在 Windows 的后台不断运行 Python 脚本?

我创建了一个将文件从一个文件夹移动到另一个文件夹的脚本。但由于原始文件夹是下载文件夹,我需要它始终在后台运行。

我还有一个标准的批处理文件,看起来像这样:

@py C:\\Python\Scripts\moveDLs.py %*
Run Code Online (Sandbox Code Playgroud)

我正在使用Windows 10。我找到了有关如何nohup在批处理文件中使用的 Linux 和操作系统信息。有 Windows 版本吗?

如果有需要每次重新启动或打开PC时都执行脚本吗?

另外,当您设法使其永久化时,您如何终止该过程?

非常感谢

python background-process nohup

17
推荐指数
2
解决办法
6万
查看次数

目标C中符号^的含义

可能重复:
目标C中的插入符号
这个^语法在Objective-C中意味着什么?

我厌倦了在目标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)

另外http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html

- (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

16
推荐指数
1
解决办法
2万
查看次数