Android 单击图标时活动未启动

Android 单击图标时活动未启动,android,android-activity,login,launching-application,Android,Android Activity,Login,Launching Application,我最近开始做一个简单的Android项目,但看起来我就是无法让它工作。我有一个主活动(它有@style/Invisible参数),它检查我的服务是否正在运行,如果没有,则启动它。此外,在进行检查之前,它会启动另一个活动以获取结果。该活动将返回用户的用户名和密码,以允许应用程序登录到系统。问题是,当我在手机上安装应用程序时,它工作正常,但下次我打开应用程序时,什么也没发生。我必须重新安装它 以下是主要活动: @Override public void onCreate(Bundle save

我最近开始做一个简单的Android项目,但看起来我就是无法让它工作。我有一个主活动(它有@style/Invisible参数),它检查我的服务是否正在运行,如果没有,则启动它。此外,在进行检查之前,它会启动另一个活动以获取结果。该活动将返回用户的用户名和密码,以允许应用程序登录到系统。问题是,当我在手机上安装应用程序时,它工作正常,但下次我打开应用程序时,什么也没发生。我必须重新安装它

以下是主要活动:

   @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;
}
@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();
}
登录Rabber活动:

   @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;
}
@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();
}
这是舱单:

<?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>


好的!我发现了问题!问题是,我的应用程序在服务启动后立即崩溃,因为我在没有互联网的情况下测试应用程序,并且没有处理在没有互联网可用时抛出的错误


只需要打开WiFi,就这样

请共享xml、清单和服务代码您的onSendData方法名为?@mman按下按钮时会调用它。在XML中,它有
android:onClick=“onSendData”
参数。