delphi 10 seattle 安卓服務開發(一)

來源:互聯網
上載者:User

標籤:

     從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;beginMyNotification := 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 安卓服務開發(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.