extends Activity für Berechnungen?

G

Gast2

Gast
Hi,

wenn ich eine Nebenklasse benötige, in der ich nur Berechnungen (mit Listener) durchführen will,
braucht diese Klasse dann "extends Activity"???

LG! Frank
 

KSG9|sebastian

Top Contributor
Ist es denn eine Activity wenn "es" ausschließlich berechnet und nix von Android, GUI oder sonstigem weiß geschweige denn irgendwie selbst eine Oberfläche hat?
 

schlingel

Gesperrter Benutzer
Prinzipiell ist die Antwort auf solche Fragen meistens Nein. Wie KSG9|sebastian richtig gefragt hat, gibt's da ja ein paar Punkte die man machen möchte, wenn man eine Activity braucht.

Da du nachfragen musst, möchtest du das nicht machen. Also Nein.

Du kannst natürlich trotzdem die Klasse als Listener oder als Publisher von Events verwenden, das hat ja so nichts mit der UI zu tun.
 
G

Gast2

Gast
Ne, es hat keine eigene Oberfläche.

Mein Gedanke, dass ich die Klasse RechneRum extends Activity mache ist,
dass womöglich die Zusammenarbeit der Klassen besser sein könnte.

(Klingt vielleicht voll anfängermässig, ist es auch. ;) )


Ich habe z.B. beobachtet, dass das vibrieren lassen nur funktioniert, wenn die Klasse um Activity erweitert wurde.
Java:
		Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
		v.vibrate(800);

Bei Der Verwendung von
Java:
		manager = (SensorManager) getSystemService(SENSOR_SERVICE);
scheint es genau so zu sein und SensorManager brauche ich.

Frank
 

schlingel

Gesperrter Benutzer
1. Immer in die Doku schauen. In diesem Fall kannst du die getSystemService-Methoden direkt in einer Activity verwenden, weil eine Activity ein Context-Objekt ist. Das heißt, wenn du die Service-Objekte nicht übergeben möchtest, übergib ein Context-Objekt. Über das kannst du das dann leicht instantieren.

2. Du schadest dir mit dem Vorgehen von Activity abzuleiten mehr als es dir hilft. Prinzipiell möchtest du ja eine Klasse schreiben um sie in anderen Activity zu verwenden. Wenn diese Klasse nun von Activity ableitet, kann sie auch nur noch mit dieser Activity verwendet werden. Dann müsstest du das ganze über startActivityForResult machen und das hört sich nicht danach an als wäre das in deinem Kontext sinnvoll.

Es kann schon sinnvoll sein, in einer Klasse die selbst keine UI-Klasse ist ein Context-Objekt zu haben. Die Adapter-Klassen für ListViews sind solche Fälle. Dort braucht man das Context-Objekt um einen Inflater zu erzeugen über den dann die Kindelemente befüllt werden können.

Aber man sollte immer wissen warum und wozu man das braucht.
 
G

Gast2

Gast
Na ich glaube, ich muss konkreter werden.
ich habe folgende App:
Java:
public class MainActivity extends Activity {

	private TextView txv;
	private int threshold, ergebnis;
	private SensorManager manager;
	private Sensor sensorLight;
	private SensorEventListener listener;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
		txv = (TextView) findViewById(R.id.txv);
		manager = (SensorManager) getSystemService(SENSOR_SERVICE);
		sensorLight = manager.getDefaultSensor(Sensor.TYPE_LIGHT);
		threshold = 500;
		txv.setText("Warten!");
		Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
		v.vibrate(100);
		sensorLight();
	}

	/**
	 * Beobachten und Auswerten des Lichtwertes.
	 */
	public void sensorLight() {
		listener = new SensorEventListener() {
			@Override
			public void onAccuracyChanged(Sensor sensor1, int accuracy) { }

			@Override
			public void onSensorChanged(SensorEvent event) {
				if (event.values.length > 0) {
					ergebnis = (int) (event.values[0] + 0.5f);
					if (ergebnis > threshold) {	
						txv.setText("Licht!");
					} 
				}
			}
		};
		manager.registerListener(listener, sensorLight,
				SensorManager.SENSOR_DELAY_NORMAL);
	}
}

Das ist ein Beispiel für eine größere App, aber für meine / diese Zwecke gut.
So weit funktioniert die App.

Mein Ziel ist es die Methode sensorLight() zu einer Bibliothek zu machen, welche ich in verschiedenen App nutzen kann.
Mein Plan ist folgender:
1.) die Methode in eine KlasseSucheLicht auslagern
2.) diese Klasse zur Bibliothek machen

Meine ungelösten Fragen:
Wie bekomme ich die Methode in eine WaitingForLight ?
(Wie zu sehen ist bin ich bis jetzt nicht sehr weit gekommen, obwohl ich mich seit heute morgen damit beschäftige.)

Wie erfährt MainActivity, wenn das Ereignis aus sensorLight(): (ergebnis > threshold) = true ist?
(siehe Zeile 36)

Wenn ich eine zweite Klasse schreibe, etwa so:
[XML]public class WaitingForLight {

private int threshold;
private SensorManager manager;
private Sensor sensorLight;
private SensorEventListener listener;

WaitingForLight() {
threshold = 200;
manager = (SensorManager) getSystemService(SENSOR_SERVICE);
}
}[/XML]
, dann gibt es bereits einen Fehler in Zeile 10 beim Parameter SENSOR_SERVICE:
SENSOR_SERVICE cannot be resolved to a variable

Ja warumennich???
In der Klasse MainActivity funktionierte es doch auch???

Falls mir jemand helfen kann, ich würde mich freuen.
Frank
 

schlingel

Gesperrter Benutzer
Da meine vorherige Antwort um 12:41 geposted wurde und deine fast zwei Stunden später kam, gehe ich davon aus, dass du mich oben nicht verstanden hast.

Also noch einmal: Du brauchst ein Context-Objekt.

Java:
public class WaitingForLight {
 
    private int threshold;
    private SensorManager manager;
    private Sensor sensorLight;
    private SensorEventListener listener;
    private Context ctxt; 

    WaitingForLight(Context ctxt) {
        this.ctxt = ctxt;
        threshold = 200;
        manager = (SensorManager) this.ctxt.getSystemService(Context.SENSOR_SERVICE);
    }
}
(Wie immer ungetestet aber das Schema sollte klar sein.)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Android BroadcastHandler extends BroadcastReceiver; auf Activity zugreifen? Android & Cross-Platform Mobile Apps 5
W JSONARRAY per Intent an andere Activity übergeben und umwandeln ggbf. Android & Cross-Platform Mobile Apps 1
M Activity einer anderen App mit result Android & Cross-Platform Mobile Apps 2
CT9288 Methode von Fragment durch Activity rufen scheitert Android & Cross-Platform Mobile Apps 7
ruutaiokwu Android Daten von "Activity A" nach "Activity B" umleiten? Android & Cross-Platform Mobile Apps 13
L Android Lockscreen-Sperrmuster activity verwenden Android & Cross-Platform Mobile Apps 1
J Android App stürzt ab wenn neue activity gestartet Android & Cross-Platform Mobile Apps 6
D Android Activity wechseln per Button Android & Cross-Platform Mobile Apps 3
P Android Android-App Crash - Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 2
S Neue Activity lässt sich nicht starten Android & Cross-Platform Mobile Apps 28
B Android Activity nach gedrückte Returntaste weiterlaufen lassen Android & Cross-Platform Mobile Apps 2
J Probleme mit ViewPager und Activity Android & Cross-Platform Mobile Apps 1
B Android In einem View der ersten Activity zweite anzeigen Android & Cross-Platform Mobile Apps 2
G Accelerometer ohne Activity Android & Cross-Platform Mobile Apps 8
K Android Übergeordnete Activity herausfinden? Android & Cross-Platform Mobile Apps 7
W Android Designfrage / Layout / Activity / Fragments Android & Cross-Platform Mobile Apps 2
B Login Activity Android & Cross-Platform Mobile Apps 1
M Android Suche Activity/View Namen Android & Cross-Platform Mobile Apps 1
K Unbekannte Menge von Daten (Strings oder Ints) an Activity übergeben Android & Cross-Platform Mobile Apps 0
M Fehler ohne Sinn? java.lang.RuntimeException: Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 11
S Android Eclipse erstellt keine main Activity Android & Cross-Platform Mobile Apps 4
B java.lang.RuntimeException: Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 2
K Android Activity for result aus Dialog Android & Cross-Platform Mobile Apps 1
S Android "Weiches wechseln" zwischen Views in einer Activity Android & Cross-Platform Mobile Apps 3
D Android Activity mit mehreren Views "spliten" Android & Cross-Platform Mobile Apps 10
G Activity-Wechsel bitte ohne Notification Android & Cross-Platform Mobile Apps 6
G eine Methode einer anderen Activity aufrufen Android & Cross-Platform Mobile Apps 9
D Android Neue Activity im TabWidget laden Android & Cross-Platform Mobile Apps 8
S Android In Service überprüfen ob eine Activity gebunden ist? Android & Cross-Platform Mobile Apps 6
T Android Activity finished testen Android & Cross-Platform Mobile Apps 5
T Activity / Application fundamentals Android & Cross-Platform Mobile Apps 4
M Activity wechseln aus List View mit Android & Cross-Platform Mobile Apps 2
G Daten von einer Activity zur nächsten übergeben Android & Cross-Platform Mobile Apps 6
G selbes Menü auf jeder Activity Android & Cross-Platform Mobile Apps 4
C Activity ohne Aktion starten Android & Cross-Platform Mobile Apps 8
C Android Kommunikation zwischen Service und Activity Android & Cross-Platform Mobile Apps 8
Maxim6394 [ Android ] Activity ändern Android & Cross-Platform Mobile Apps 9
A Activity Intent 'source not found' Android & Cross-Platform Mobile Apps 4
A Android Activity Variablen-Initialisierung Android & Cross-Platform Mobile Apps 8
A Beenden einer 2ten Activity Android & Cross-Platform Mobile Apps 3
W Standard Gallery Activity? Android & Cross-Platform Mobile Apps 22
schlingel Android: Overlay in Activity Android & Cross-Platform Mobile Apps 3
G Activity beenden Android & Cross-Platform Mobile Apps 2
Kazudemruzo Android API/Library für externe Entwickler zur Verfügung stellen Android & Cross-Platform Mobile Apps 7
C Consent für Admob mit ump / funding choices Android & Cross-Platform Mobile Apps 6
B Was fehlt mir hier für diese Klasse? ich habe es mit (>>> ... <<<) markiert. Android & Cross-Platform Mobile Apps 4
J SharedPreferences für User-Session Android & Cross-Platform Mobile Apps 2
M Barrierefreie Appentwicklung für Android - Suche Codebeispiele Android & Cross-Platform Mobile Apps 8
I App für Fire HD entwickeln Android & Cross-Platform Mobile Apps 3
T Bringen mir die Java-Basics irgendetwas für die Android-Programmierung Android & Cross-Platform Mobile Apps 4
L Textfeld für Dezimalzahl mit Vorzeichen Android & Cross-Platform Mobile Apps 2
J Android Datenbank Klasse nur für CRUD-Operation, oder auch mehr ? Android & Cross-Platform Mobile Apps 8
B Android Projekt für Android und IOS erstellen? Android & Cross-Platform Mobile Apps 5
J Impressumspflicht für App, wenn ich kein Unternehmer bin? Android & Cross-Platform Mobile Apps 13
T Android Equalizer für Android Android & Cross-Platform Mobile Apps 3
L Zeitstempel für Sensordaten bekommen Android & Cross-Platform Mobile Apps 3
L Android Texterkennung für Android? Android & Cross-Platform Mobile Apps 1
L Android Chart API für Android Android & Cross-Platform Mobile Apps 0
T Android Datenbankverbindung in Service für Push Notification Android & Cross-Platform Mobile Apps 0
R Android USB Treiber für Huawei Android & Cross-Platform Mobile Apps 1
M Hilfe bei App Programmierung für Android Android & Cross-Platform Mobile Apps 1
B Script für Android Android & Cross-Platform Mobile Apps 1
H Datenprotokoll für Graphview Android & Cross-Platform Mobile Apps 2
M Android Obfuscation für Strings Android & Cross-Platform Mobile Apps 8
S Bilder mit fester grösse für verschiedene Android Endgeräte Android & Cross-Platform Mobile Apps 2
D Android Layout für alle Geräte Android & Cross-Platform Mobile Apps 4
A String[] für Lisadapter Android & Cross-Platform Mobile Apps 4
D Lib für (Desktop-)Java und Android schreiben Android & Cross-Platform Mobile Apps 7
J MySQL Simulation für Android App Android & Cross-Platform Mobile Apps 2
kaoZ Tutorial .xml Layouting für z.B ListView elemente Android & Cross-Platform Mobile Apps 7
W Java Editor für Android +Emulator Android & Cross-Platform Mobile Apps 7
M 20 Image Button für jede Auflösung positionieren Android & Cross-Platform Mobile Apps 3
L Android ActionBar mit unterschiedlichen Farben für Tabs Android & Cross-Platform Mobile Apps 3
S Voraussetzungen für Android-Apps Android & Cross-Platform Mobile Apps 7
R Sinnvoller Ablageort für Leveldaten Android & Cross-Platform Mobile Apps 8
B App bei Play-Store für bestimmte auflösungen anbieten? Android & Cross-Platform Mobile Apps 3
H Progrämmchen für Symbian Android & Cross-Platform Mobile Apps 4
G wiederkehrenden Wert für Design in XML ablegen Android & Cross-Platform Mobile Apps 2
L Android SearchBox für Custom Listview Android & Cross-Platform Mobile Apps 5
T Android KontrollApp für Nitrado Server Android & Cross-Platform Mobile Apps 2
L Android Eine Kleinigkeit für Profis Android & Cross-Platform Mobile Apps 2
G Android C++ Quellcode für Android Geräte compilieren Android & Cross-Platform Mobile Apps 2
T Zeit in zwei Zahlen für Widget zerlegen Android & Cross-Platform Mobile Apps 2
J Apps für Android programmieren - Android Handy notwendig oder reicht Simulator? Android & Cross-Platform Mobile Apps 3
A Android SimpleDateFormat gibt für Date unter android anderes Datum zurück als in Std. Java Android & Cross-Platform Mobile Apps 2
H Android Landscape Modus für App dektivieren Android & Cross-Platform Mobile Apps 3
M Frage zu Java Programm für Windows Mobile 6.5 Android & Cross-Platform Mobile Apps 2
H Welches JDK für Huawei G7002? Android & Cross-Platform Mobile Apps 6
C Panel/View für Android Android & Cross-Platform Mobile Apps 3
C Sanke für Android Android & Cross-Platform Mobile Apps 3
Kukulkan Welche Mindestanforderungen (JDK) für Android und BB? Android & Cross-Platform Mobile Apps 8
G Views für verschiedenen Bildschirmgroeßen Android & Cross-Platform Mobile Apps 2
thE_29 Widget für verpasste Anruf + SMS Android & Cross-Platform Mobile Apps 2
A Android Android Parameter für VM Android & Cross-Platform Mobile Apps 7
O Entwickler für Java Anwendungen auf Handy gesucht! Android & Cross-Platform Mobile Apps 3
S JButton in GUI für Handys? Android & Cross-Platform Mobile Apps 3
M Welche Datenbank für J2ME? Android & Cross-Platform Mobile Apps 5
D Event für Tastensperre? Android & Cross-Platform Mobile Apps 3
G WTK für Nokia Android & Cross-Platform Mobile Apps 2
P bestimmte API für XDA ORBIT2 Android & Cross-Platform Mobile Apps 3

Ähnliche Java Themen

Neue Themen


Oben