Ich bin mir der Verfügbarkeit von Context.getApplicationContext() und View.getContext() bewusst, durch die ich tatsächlich Context.getPackageName() aufrufen kann, um den Paketnamen einer Anwendung abzurufen.
Sie funktionieren, wenn ich von einer Methode aus aufrufe, zu der ein View
oder ein Activity
-Objekt verfügbar ist, aber wenn ich den Paketnamen von einer völlig unabhängigen Klasse ohne View
oder Activity
finden möchte, gibt es einen Weg, das zu tun (direkt oder indirekt)?
7 Stimmen
Die akzeptierte Antwort wird dazu führen, dass Ihre Anwendung gelegentlich ABSTÜRZT - lesen Sie die Kommentare von AddDev & Turbo und danken Sie beiden für die vorgeschlagenen Lösungen.
1 Stimmen
Es könnte sein, dass du keine andere Möglichkeit hast, aber aus Gründen bewährter Praxis würde ich sagen, es ist besser, dies auf irgendeine Weise in die Klasse zu übergeben, in der du es benötigst, ausgehend von deinem letzten Kontextpunkt. Du greifst auf Laufzeitkontextinformationen in einer Klasse zu, die nichts über Kontexte auf eine statische Weise weiß - das stört mich. Ein anderer Ansatz wäre, es irgendwo fest codiert einzufügen.