Ich habe eine Nicht-Activity-Klasse (nennen wir es "NonActivity"), die eine Nachricht senden und Benutzerfeedback erhalten muss. Ich habe eine Nachrichtenaktivität (MsgActivity) Klasse, um dies zu tun. Aber nur Aktivitätsklassen können startActivityForResult() aufrufen so machte ich eine innere Hilfsklasse in NoActivity:ActivityNotFoundException Aufruf einer Aktivität innerer Klasse
// just to provide an Activity to launch MsgActivity
class ActivityMsgClass extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent iMA = new Intent(this, MsgActivity.class);
iMA.putExtra("MsgText", mParams[0]);
...blah blah ...
iMA.putExtra("ButtonCode", iBtns);
startActivityForResult(iMA,3);
}
}
Meine Aktivitätsklasse ist thusly im Manifest erklärt:
<activity android:name="ActivityMsgClass"
android:configChanges="orientation"
android:screenOrientation="portrait"
android:launchMode="singleInstance"></activity>
Aber wenn ich versuche, Rufen Sie es auf. . .
Intent i = new Intent(ctx, ActivityMsgClass.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ctx.startActivity(i);
... Ich bekomme eine ActivityNotFound-Ausnahme. Ich habe versucht, es auch ohne FLAG_ACTIVITY_NEW_TASK, und ich habe auch versucht, den Namen im Manifest der Qualifikation, zum Beispiel
<activity android:name=".NoActivity.ActivityMsgClass"
. . . umsonst. Was mache ich falsch?
Vielen Dank im Voraus.
Wenn ich das tue, was ist der beste Weg, um die Parameter zwischen den NonActivity und Activity-Klassen hin und her zu übergeben? Ein Grund, warum ich eine innere Klasse verwenden wollte, war der lokale Zugriff auf die Variablen von NonActivity. – user316117
Es hängt vom Fall ab, aber normalerweise ist die innere Klasse nicht die Lösung beim Arbeiten mit Aktivitäten. – MByD
Ich stimme zu - es machte mir auch mulmig, eine innere Klasse zu benutzen, aber ich wurde davon abgehalten, die Daten hin und her zu bekommen. Statische "Globale"? Was schlagen Sie vor? – user316117