Ich habe vor kurzem begonnen, an einem einfachen Android-Projekt zu arbeiten, aber es sieht so aus, als könnte ich es einfach nicht zum Laufen bringen. Ich habe eine Hauptaktivität (Es hat @ style/Invisible-Parameter), die prüft, ob mein Dienst läuft und startet es, wenn es nicht ist. Bevor die Prüfung stattfindet, startet sie eine weitere Aktivität für das Ergebnis. Es wird erwartet, dass die Aktivität den Benutzernamen und das Passwort des Benutzers zurückgibt, damit sich die App im System anmelden kann. Das Problem ist, dass es funktioniert, wenn ich die App auf meinem Handy installiere, aber das nächste Mal, wenn ich die App öffne, passiert nichts. Ich muss es neu installieren.Aktivität wird nicht gestartet, wenn auf das Symbol geklickt wird
Hier ist die Hauptaktivität:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Intent intent = new Intent(this, LoginGrabber.class);
startActivityForResult(intent, 100);
if(isMyServiceRunning()==false)
{
startService(new Intent(getApplicationContext(), MyService.class));
Log.i("com.connect","startService");
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if(requestCode == 100){
if(resultCode == RESULT_OK){
String username = data.getStringExtra("Username");
String password = data.getStringExtra("Password");
//TODO Send to server
Toast.makeText(this, "Username: " + username + " Password: " + password, Toast.LENGTH_LONG);
}
}
}
private boolean isMyServiceRunning() {
ActivityManager manager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (MyService.class.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}
LoginGrabber Aktivität:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_grabber);
}
public void onSendData(View view){
Intent intent = new Intent();
intent.putExtra("Username", ((TextView) findViewById(R.id.email)).getText());
intent.putExtra("Password", ((TextView) findViewById(R.id.password)).getText());
setResult(RESULT_OK, intent);
finish();
}
Hier ist das Manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.app.test"
android:versionCode="2"
android:versionName="2.0">
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="18" />
<supports-screens
android:largeScreens="true"
android:resizeable="true"
android:xlargeScreens="true" />
<uses-permission
android:name="android.permission.INTERNET"
android:required="true" />
<application
android:icon="@drawable/launcher"
android:label="@string/app_name"
android:theme="@style/Invisible">
<activity
android:name="com.connect.Main"
android:excludeFromRecents="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
<service
android:name="com.connect.MyService"
android:enabled="true"
android:exported="true" />
<activity
android:theme="@style/AppTheme"
android:name="com.connect.LoginGrabber"
android:label="@string/title_activity_login_grabber" />
</application>
</manifest>
Was mache ich falsch?
Danke für Ihre Hilfe!
Bitte teilen Sie XML, Manifest und Service-Code –
Wo wird Ihre OnSendData-Methode aufgerufen? – mmcoder10
@mman Es wird aufgerufen, wenn die Taste gedrückt wird. In XML hat es den 'android: onClick =" onSendData "' Parameter. –