码迷,mamicode.com
首页 > 移动开发 > 详细

delphi 10 seattle 安卓服务开发(一)

时间:2015-09-05 19:15:55      阅读:607      评论:0      收藏:0      [点我收藏+]

标签:

     从delphi 开始支持安卓的开发开始, 安卓service 开发一直都是delphier 绕不过去的坎,

以前也有开发service  的方法,但是都是手工处理启动文件,而且要修改很多东西,基本上成功

的概率很低。

    delphi 10 seattle(这个名字很特殊,与win10 一样,直接跳过了9) 终于官方支持安卓service 开发了,

不知道现在现在开发安卓service 是不是很简单?那么就让我们一探究竟。

    首先,我们开启已经扁平的不能再扁平delphi 10, 选择建立一个其他项目。出现下图:

技术分享

  选择第一个绿色机器人(不用想,都是android 的东西),点确认。进入下一图:

技术分享

选择服务类型,不同的类型功能不太一样,我在以后再介绍,今天先选第一个,从最简单的开始。

点OK 后就生成一个工程。

技术分享

我们把工程名改成我们喜欢的名字,然后单独保存到一个目录(记住,是单独保存到一个目录,主要的话要说几遍来着?)。

技术分享
 
注意名字。
 
然后放置一个控件
 技术分享
 
 
 
uses
  Androidapi.JNI.App;

function TAndroidServiceDM.AndroidServiceStartCommand(const Sender: TObject;
  const Intent: JIntent; Flags, StartId: Integer): Integer;
begin
   LThread := TThread.CreateAnonymousThread(procedure

    begin
       while true  do
       begin
          sleep(10000);
          DoNotification;
       end;
    end);
  LThread.FreeOnTerminate := False;
   LThread.Start;
   Result := TJService.JavaClass.START_STICKY; //   保持服务运行
end;

 procedure TAndroidServiceDM.DoNotification;
 var
  MyNotification: TNotification;
begin
MyNotification := NotificationCenter1.CreateNotification;
  try
    MyNotification.Name := xalion;
    MyNotification.Title := 时间到了+formatdatetime(yyyy-mm-dd hh:nn:sss,now);
    MyNotification.AlertBody := 懒人都要起床了;
    MyNotification.FireDate:=now;
    NotificationCenter1.PresentNotification(MyNotification);
  finally
    MyNotification.Free;
  end;

 

 OK, 点buider 工程,肯定不是 运行了。因为他是一个so, 肯定跑不起。

 

现在我们建立一个标准的主程序, 当然是FMX 得了,如果你要建立VCL 的应用的话,那我建议你去看一下精神病科医生。

前面说了,一定要保存到另外一个目录。

窗口如下

技术分享
 
并输入以下代码
type
  Tmainf = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    NotificationCenter1: TNotificationCenter;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure NotificationCenter1ReceiveLocalNotification(Sender: TObject;
      ANotification: TNotification);
  private
    { Private declarations }
    FService: TLocalServiceConnection;
  public
    { Public declarations }
  end;

var
  mainf: Tmainf;

implementation

{$R *.fmx}

procedure Tmainf.Button1Click(Sender: TObject);
begin
   Fservice:= TLocalServiceConnection.Create;
   FService.StartService(xalionservice);
end;

procedure Tmainf.NotificationCenter1ReceiveLocalNotification(Sender: TObject;
  ANotification: TNotification);
begin
   TThread.Queue(nil, procedure
  begin
   memo1.Lines.Add( ANotification.AlertBody);

  end);
end;

 

 
工程如下
 
技术分享

在 黑体的上面鼠标右键,然后选add android service.

出现下一个窗口

技术分享

选择刚才的服务应用的目录。

继续下去就可以了

完了以后,看看工程文件

技术分享
再看看发布页面
技术分享
确保这两个文件正确存在。
 
剩下还要干什么?
当然是编译运行了呀。
 
技术分享
 
点运行服务。
退出程序
等十秒钟
 
"咚""咚""叮"
手机响起来了
技术分享
左上角出来了一个火苗图标。
让我们看看是什么?
 
技术分享
 
懒人都起床了
 
再点一下,就回到了我们的主程序
 
技术分享
 

第一个服务就这样了。不知道算不算简单?

反正是基本上折腾了一天。

 

什么手机还在每隔10秒叫一次,当然了。为什么,有代码有真相,自己看吧。

一直停不下来,怎么办,很简单呀,把这个应用删掉,就不叫了:)

 

今天牺牲了一天吹牛的时间,终于把这个搞完了。

后面有空再写别的吧。

 

delphi 10 seattle 安卓服务开发(一)

标签:

原文地址:http://www.cnblogs.com/xalion/p/4782828.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!