AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi SharedActivity.getWindow.setFlags bringt immer Exception

SharedActivity.getWindow.setFlags bringt immer Exception

Ein Thema von zeras · begonnen am 31. Dez 2014 · letzter Beitrag vom 31. Dez 2014
Antwort Antwort
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#1

SharedActivity.getWindow.setFlags bringt immer Exception

  Alt 31. Dez 2014, 13:17
Ich versuche schon seit einiger Zeit, unter Android Flags zu setzen bzw. resetten.
Hier meine Zeilen.

Delphi-Quellcode:
try

    SharedActivity.getWindow.setFlags(
    TJWindowManager_LayoutParams.JavaClass.FLAG_SHOW_WHEN_LOCKED,
    TJWindowManager_LayoutParams.JavaClass.FLAG_SHOW_WHEN_LOCKED);

  except
    ShowMessage('Exception');
  end;
Das Programm läuft dann immer in den except Zweig.
Zum Test habe ich mal alle Berechtigungen gesetzt, die es in XE5 gibt, aber auch hier läuft es in den except Zweig, was für mich bedeutet, dass irgendetwas nicht korrekt aufgerufen wurde. Ähnliche Beispiele im Netz machen das aber auch genau so.
Was mache ich falsch?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: SharedActivity.getWindow.setFlags bringt immer Exception

  Alt 31. Dez 2014, 13:49
Welche Exception kommt denn nun da an?

(Über das Exception-Handling habe ich mich ja schon mehrfach ausgelassen, und das hier ist der Ober-NoGo )

Lass doch diesen try except komplett weg. Es passiert das Gleiche mit mehr Information.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#3

AW: SharedActivity.getWindow.setFlags bringt immer Exception

  Alt 31. Dez 2014, 14:09
Danke für die Hinweise.

Nun habe ich eine Meldung:

Only the original thread that created a view herarchy can touch its views.

Aber was fange ich damit an?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: SharedActivity.getWindow.setFlags bringt immer Exception

  Alt 31. Dez 2014, 14:24
Danke für die Hinweise.

Nun habe ich eine Meldung:

Only the original thread that created a view herarchy can touch its views.

Aber was fange ich damit an?
Nun ja, wenn du das bei Google eingibst, dann bekommst du wesentlich mehr qualifizierte Treffer als bei der Suche nach "Exception", gelle?

Also schon einen wesentlichen Schritt weiter.

Selbst ohne Suche sieht man aber auch schon, dass du diesen Aufruf im falschen TreadKontext aufrufst. AFAIK ist bei Android der MainThread-Kontext <> dem Android-UIThread-Kontext. Von daher musst du dir etwas suchen, um auf diesen Thread-Kontext zu gelangen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#5

AW: SharedActivity.getWindow.setFlags bringt immer Exception

  Alt 31. Dez 2014, 14:42
Selbst ohne Suche sieht man aber auch schon, dass du diesen Aufruf im falschen TreadKontext aufrufst. AFAIK ist bei Android der MainThread-Kontext <> dem Android-UIThread-Kontext. Von daher musst du dir etwas suchen, um auf diesen Thread-Kontext zu gelangen.
Das ist nun die nächste harte Nuss zum knacken, aber google wird mir da schon Hinweise bringen.

Die snippets, die ich mir dazu gesucht hatte, geben keinen Hinweis auf diese "Falle". Da hätte aber jeder drüber stolpern müssen.

Danke nochmal. Wenn Stadthagen nicht so weit weg wäre, würde ich dir mal eine Flasche Sekt vorbeibringen.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: SharedActivity.getWindow.setFlags bringt immer Exception

  Alt 31. Dez 2014, 15:18
Hier ist ein Beispiel das die Lösung Zeigt: http://blog.marcocantu.com/blog/2014...d_threads.html
Windows Vista - Eine neue Erfahrung in Fehlern.

Geändert von Bernhard Geyer (31. Dez 2014 um 15:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: SharedActivity.getWindow.setFlags bringt immer Exception

  Alt 31. Dez 2014, 15:58
Hmmm, ich würde sagen, nicht wirklich, denn der MainThread-Kontext ist ungleich dem Android-UI-Thread-Kontext!

Ich würde das eher mit den Routinen aus der FMX.Helpers.Android versuchen.
Natürlich steht davon nichts in der Dokumentation - ist halt sehr unwichtig
Delphi-Quellcode:
unit FMX.Helpers.Android;
...
procedure CallInUIThread(AMethod: TMethodCallback); overload;
procedure CallInUIThread(AMethod: TCallBack); overload;
procedure CallInUIThreadAndWaitFinishing(AMethod: TMethodCallback); overload;
procedure CallInUIThreadAndWaitFinishing(AMethod: TCallBack); overload;
Oder im ganzen Satz
Delphi-Quellcode:
CallInUIThreadAndWaitFinishing(
  procedure
  begin
    SharedActivity.getWindow.setFlags(
      TJWindowManager_LayoutParams.JavaClass.FLAG_SHOW_WHEN_LOCKED,
      TJWindowManager_LayoutParams.JavaClass.FLAG_SHOW_WHEN_LOCKED );
  end );
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (31. Dez 2014 um 16:02 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz