Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在没有每3小时运行一次的gui的情况下创建服务?_Android - Fatal编程技术网

Android 如何在没有每3小时运行一次的gui的情况下创建服务?

Android 如何在没有每3小时运行一次的gui的情况下创建服务?,android,Android,我编写了一个应用程序,它将android手机中的某个文件夹压缩,然后发送到某个FTP服务器 这个应用程序是没有问题的工作,但这个应用程序包含GUI和发送激活它,我需要按下一些按钮上的活动 但现在,我想写一些其他的应用程序,并将运行作为服务,并将做同样的-这意味着该服务将运行每3小时,将压缩一些文件夹,并将上传压缩文件夹到ftp 我不知道怎么做 如何创建将与手机一起运行的服务是启动 如何上传到FTP?我不能上传到FTP没有做它从一个活动 谢谢你的帮助 对于定期呼叫服务,您需要使用报警管理器,以下是

我编写了一个应用程序,它将android手机中的某个文件夹压缩,然后发送到某个FTP服务器

这个应用程序是没有问题的工作,但这个应用程序包含GUI和发送激活它,我需要按下一些按钮上的活动

但现在,我想写一些其他的应用程序,并将运行作为服务,并将做同样的-这意味着该服务将运行每3小时,将压缩一些文件夹,并将上传压缩文件夹到ftp

我不知道怎么做

  • 如何创建将与手机一起运行的服务是启动
  • 如何上传到FTP?我不能上传到FTP没有做它从一个活动
    谢谢你的帮助

    对于定期呼叫服务,您需要使用报警管理器,以下是如何将报警管理器与服务一起使用的答案

    在这里启动引导服务


    我假设您知道如何创建服务,但不确定如何在启动时启动它。这就是解决方案的分解方式:

  • 注册接收器以接收启动广播
  • 从接收器启动服务
  • 在服务内部,使用Alarm Manager注册定期唤醒
  • 报警管理器唤醒后,运行文件上载代码
  • 启动后启动:

    首先,您必须创建一个接收器:

        public class AfterBootReceiver extends BroadcastReceiver {
    
           final static String TAG = "BootCompleted";
    
           @Override
           public void onReceive(Context context, Intent arg1) {
           Log.w(TAG, "about to start service...");
           context.startService(new Intent(context, YourService.class));
           //This line starts your service.
           }
        }
    
    然后在Manifest.xml中为服务授予启动权限,并注册上述接收者

       <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    
       <receiver android:name=".AfterBootReceiver" >
           <intent-filter>
                 <action android:name="android.intent.action.BOOT_COMPLETED" />
           </intent-filter>
       </receiver>
    
    
    

    例如:

    然后,在周期代码中,文件上载任务:


    我认为此解决方案要求应用程序具有GUI和服务模式。(参见)