Android 5.0之后启动Service 服务的方式

自从更新SDK之后,升到5.0版本,出现在启动Service 的时候出现异常!
以下异常:

Case by:java.lang.IllegalArgumentException: Service Intent must be explicit

后来经过相关的查阅发现Android在5.0 版本之后,对于Service服务的启动只能使用显示意图,而不能使用隐示的调用!

为此将其代码修改为如下方式启动:


public class MainActivity extends Activity implements OnClickListener,
UserLoginView {
    private ProgressBar progressBar;
    private EditText et_name;
    private EditText et_password;
    private Button start;
    private Button bt_clear;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et_name = (EditText) findViewById(R.id.et_name);
        et_password = (EditText) findViewById(R.id.et_password);
        progressBar = (ProgressBar) findViewById(R.id.pb_loading);
        start = (Button) findViewById(R.id.start);

        bt_clear = (Button) findViewById(R.id.bt_clear);
        start.setOnClickListener(this);
        bt_clear.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        UserPresenter presenter = new UserPresenter(this);
        switch (v.getId()) {

        case R.id.start:
            Intent intent = new Intent();
            intent.setClass(this, TestService.class);

            startService(intent);
            presenter.login();
            break;

        case R.id.bt_clear:
            presenter.clearInfos();

            break;

        default:
            break;
        }
    }

由此就可解决出现的相关问题!

猜你喜欢

转载自blog.csdn.net/wlytctw/article/details/51899521