单击图标时未启动活动

时间:2016-03-25 06:37:32

标签: android android-activity login launching-application

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

这是主要活动:

// String.prototype.__defineGetter__("doc", function() { return "test" }); //deprecated

Object.defineProperty(String.prototype, "doc", {
  get: function doc() {
    return "this is a string";
  }
});
console.log("this is a string".doc);

LoginGrabber活动:

   @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();
}

我做错了什么?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

只需打开WiFi,就是这样!