Hogyan tudom elrejteni

Hogyan tudom elrejteni

Dobta sárgaréz puzzle, de nem egyszerű. A kérelemnek tartalmaznia kell a háttérben, hogy figyelemmel kíséri a gps, hogy gyűjtsön adatokat az akkumulátor, a fakitermelés, majd megsemmisíteni a szerveren. Mindez naschadno zabál akkumulátor, értem, de a hatóságoknak kell ezt az opciót. Ami a kérdés:
1.Nuzhno vágott szolgáltatások, hanem az alapján a múlt - az időzítő nem működik oltvány nem lehetőség, hogyan kell megtenni annak érdekében, hogy felébredjen a szolgáltatás 5 percenként / 15 perc / 1 óra.
GPS 2.Monitoring, akkor egy ilyen döntés talált ebben a téma, hogy Seattle-ben, a legjobb módja annak, hogy összegyűjti és tárolja az adatokat el kell küldeni? (Mielőtt minden tartani egyszerű .txt)
Tedd indy alkatrészek helyesen, ha 3.Rabotayut? kiváltott except'y-e és hogyan ellenőrzi a hálózati kapcsolatot?
A másik probléma az, hogy a program működik többé-kevésbé stabil, és ha a tapasztalatok az írás egy egyszerű alkalmazás van az, hogy a szolgáltatások egy pár hónapig, nem tudom, hogy barátok.
Minden hód!

Hogyan tudom elrejteni

szerkesztésére szövegének Anroide hívom a virtuális billentyűzet példaként InputQueryMethod
out billentyűzet betűket és speciális karaktereket. hogyan kell hívni Claudia, anélkül, hogy speciális karaktereket. hogy csak betűk és számok.

A probléma a hosszú, szeretnék végre foglalkozni vele.
Ez teremtett egy teszt, amelyben TestPro app és helyi szolgáltatás az Android-TestService2 őt.
A program futtatásához kattintson a Start Service gomb, a szolgáltatás elindul (lásd lehetséges Beállítások -> Alkalmazások -> működik).
Bezárása nélkül a program, én pedig a többi program és dolgozni velük. A legjobb, ha megy minden böngésző és megy keresztül a fülek (ez elég erőforrás-igényes alkalmazás).
Néhány perc múlva a feladatkezelő megyek vissza az alkalmazást, és elkezd betölteni a semmiből. Ez a rendszer régen szögezték a programot, és kezdődik újra a letöltést. Mindaddig, amíg a program lóg a splash screen, majd hagyjon üzenetet, hogy az alkalmazás nem válaszol! Kattintson az OK gombra. Ismételt újraindítás a program zajlik ugyanaz, és csak a harmadik alkalommal indul a program.
Hogyan lehet megoldani ezt a problémát?

Megpróbáltam megölni szolgáltatás
var LIntent: JIntent; LIntent: = TJIntent.Create; LIntent.setClassName (TAndroidHelper.Context.getPackageName (), TAndroidHelper.StringToJString ( 'com.embarcadero.services.TestService2')); TAndroidHelper.Activity.stopService (LIntent); hogy Application.Initialize vonalak - nem segít.

Hogyan tudom elrejteni

Jó napot! A probléma merült ki a kék. A legegyszerűbb alkalmazás Edit1 készült a C ++ Builder 10.1 Berlinben.
Az emulátor Android 5.0.1 minden működik gond nélkül. Egy valódi eszköz HTC One E9 + (Android 5.0.2) tapas a Szerkesztés a virtuális billentyűzet nem jelenik meg, és az alkalmazás nem válaszol. És C ++ Builder 10 Seattle ez a probléma nem merül fel. Amely hatással lehet a megjelenése a virtuális billentyűzetet? Lehet-e probléma miatt frissíteni Android-eszközök?

Rájöttem, hogyan kell dolgozni egy mikrofonnal és egy időmérő az Android szolgáltatást, amint az a tárgy.
Minden alkalommal, amikor elküldi a szolgáltatás StartCommand vagy szolgáltatás újraindítása kapcsolva a mikrofon, és tárolja a könyvtárban a zene „myrecord.3gp” fájlt.
Remélem én például segít létrehozni egy új és hasznos megoldásokat. Ebben az esetben kérjük ossza meg a közösségünk tagjai.
A programok hibakereséséhez Androidon használja a bejegyzést a LOGI és az olvasás segítségével monitor.bat (PlatformSDKs \ android-sdk-windows \ tools).

használ. AndroidApi.JNI.Media, // JMediaRecorder AndroidApi.Timer, // időzítő. ; Const TimerInterval = 1000; TimerCounterSecLimit = 10; típusú TDM = osztály (TAndroidService). privát FTimerHandle: integer; FRecording: Boolean; eljárás StartRecord; eljárás StopRecord; eljárás StartTimer; eljárás StopTimer; nyilvános FAudioRec: JMediaRecorder; végén; eljárás Log (const FMT: string; const Params: tömb const); túlterhelés var Msg: string; M: TMarshaller; kezdődik Msg: = formátum (FMT, params); LOGI (M.AsUtf8 (MSG) .ToPointer); végén; eljárás Log (const Forrás: string); túlterhelés var M: TMarshaller; kezdődik LOGI (M.AsUtf8 (Forrás) .ToPointer); végén; eljárás TDM.AndroidServiceCreate (Sender: TObject); kezdődik FTimerHandle: = 0; FTimerCounter: = 0; FRecording: = false; végén; eljárás TDM.AndroidServiceDestroy (Sender: TObject); kezdődik StopTimer; StopRecord; végén; funkció TDM.AndroidServiceStartCommand (const Sender: TObject; const szándék: JIntent; zászlók, StartId: Egész): egész; kezdeni, ha Intent.getAction.equalsIgnoreCase (StringToJString (StopIntent)), akkor kezdődik StopTimer; StopRecord; Eredmény: = TJService.JavaClass.START_NOT_STICKY; // ne töltse szolgáltatás Log ( '- szolgáltatás stoped', []); véget mást kezdeni, ha nem FRecording ezután kezdődik Log (hangfelvétel kell kezdeni. ", []); startRecord; startTimer; végén; Eredmény: = TJService.JavaClass.START_STICKY; // újrafuttató szolgáltatást, ha megáll Log (+ Service lépések "[]); végén; végén; eljárás TDM.StartRecord; kezdődik StopRecord; FAudioRec: = TJMediaRecorder.Create; FAudioRec.setAudioSource (TJMediaRecorder_AudioSource.JavaClass.MIC); FAudioRec.setOutputFormat (TJMediaRecorder_OutputFormat.JavaClass.THREE_GPP); FAudioRec.setAudioEncoder (TJMediaRecorder_AudioEncoder.JavaClass.AMR_NB); FAudioRec.setOutputFile (StringToJString (TPath.Combine (TPath.GetSharedMusicPath, 'myrecord.3gp'))); próbálja FAudioRec.Prepare (); FAudioRec.start; FRecording: = true; Log (+ felvétel kezdete:% s ', [TPath.Combine (TPath.GetSharedMusicPath 'myrecord.3gp')]); kivéve az E: Kivétel do Log ( '- Hiba a MIC felvétel:% s', [E.Message]); végén; végén; eljárás TDM.StopRecord; kezdeni, ha Címzett (FAudioRec), azután indítsa, ha FRecording ezután kezdődik FRecording: = false; próbálja FAudioRec.stop (); FAudioRec.release (); Log ( '- Mic felvétel stoped'); kivéve E: Kivétel do log ( '- Hiba a mikrofon felvétel megállításához:% s', [E.Message]); végén; végén; végén más kezdődik FRecording: = false; végén; végén; eljárás TDM.WaitComplete (TimerId: Egész szám); kezdeni, ha FTimerCounter 0, akkor kezdődik Log ( 'MIC felvétel le kell állítani.'); StopRecord; AndroidTimerSetHandler (nulla); Log ( '- időzítő stoped', []); végén; végén; végén.

Megpróbálom, hogy visszavonja a szolgáltatás napló, monitor, de semmi nem jön.
Például itt van egy teszt projektet
Nézze meg, hogyan?
PS. A napló alkalmazása általában megérkezik

Lehetséges, hogy a munka egy bázis egy időben, és a programban és a szolgáltatás?
PS. Android

Hogyan tudom elrejteni

Valójában, a tárgya a cím. Hogyan?
Próbálom használni SQLite + FDConnection.
FDConnection.Params.Database: = TPath.Combine (System.IOUtils.TPath.GetDocumentsPath, 'basename.db'); Úgy működik, hogy a fő formája, de leteszi szolgáltatást.

Semleges TTimer nem lehet használni. Mellesleg miért nem? Miért fellebbez activiti a Androidapi.Helpers?
Embarcadero egy hibajavítás.

Hogyan kell végrehajtani a stoppert, amikor?

Most az oldalt 0 felhasználó

Nem ember nézi ezt az oldalt