Android Lint使IntentService构造函数私有

Android Lint使IntentService构造函数私有,android,lint,Android,Lint,如果我使用模板 public class EditProfileIntentService extends IntentService { private static final String USENAME = "username"; private static final String LASTNAME = "lastname"; private static final String PHONE = "phone"; private static final Strin

如果我使用模板

public class EditProfileIntentService extends IntentService {
  private static final String USENAME = "username";
  private static final String LASTNAME = "lastname";
  private static final String PHONE = "phone";
  private static final String EMAIL = "email";
  private Handler handler;
  private Context mContext;

  public EditProfileIntentService() {
    super("EditProfileIntentService");
  }

  public static void edit(Context context, String username, String lastname, String email,
      String phone) {
    Intent intent = new Intent(context, EditProfileIntentService.class);
    intent.putExtra(USENAME, username);
    intent.putExtra(LASTNAME, lastname);
    intent.putExtra(EMAIL, email);
    intent.putExtra(PHONE, phone);

    context.startService(intent);
  }

  @Override public int onStartCommand(Intent intent, int flags, int startId) {
    handler = new Handler();
    mContext = this;
    return super.onStartCommand(intent, flags, startId);
  }

  @Override protected void onHandleIntent(Intent intent) {

    if (intent != null) {
      final String username = intent.getStringExtra(USENAME);
      final String lastname = intent.getStringExtra(LASTNAME);
      final String email = intent.getStringExtra(EMAIL);
      final String phone = intent.getStringExtra(PHONE);

      try {
        final ResponseContainer container =
            RestClient.get().editProfile(Token.getToken(this), username, lastname, phone, email);
        if (container.getSucess().equals(1)) {
          ProfileEntity profileEntity = Token.getProfile(this);
          profileEntity.setEmail(email);
          profileEntity.setPhone(phone);
          profileEntity.setUsername(username);
          profileEntity.setLastname(lastname);
          Token.saveProfile(this, profileEntity);
          handler.post(new Runnable() {
            @Override public void run() {
              Toast.makeText(mContext, R.string.edit_profile_success, Toast.LENGTH_SHORT).show();
            }
          });
        } else {
          handler.post(new Runnable() {
            @Override public void run() {
              Toast.makeText(mContext, container.getMessage(), Toast.LENGTH_SHORT).show();
            }
          });
        }
      } catch (RetrofitError e) {
        handler.post(new Runnable() {
          @Override public void run() {
            Toast.makeText(mContext, R.string.auth_rg_network_error, Toast.LENGTH_SHORT).show();
          }
        });
      }
      EventBus.getDefault().postSticky(new FinishProfileEdit());
    }
  }
}
然后lint建议将构造函数设为私有,这将使服务不可接受并抛出

java.lang.RuntimeException: Unable to instantiate service ua.in.femid.controller.services.EditProfileIntentService: java.lang.IllegalAccessException: access to constructor not allowed
是虫子吗?如何使lint从不建议将强制公共领域设置为受保护或私有领域

编辑该服务仅通过方法
EDIT

编辑2
将初始化器从构造函数移动到onStartCommand,lint仍然希望使构造函数私有化
编辑3

Lint建议为那些IntentService创建私有构造函数,该构造函数遵循android studio模板,并使用静态方法将参数设置为bandle并调用startService,就像我在edit method中所做的那样

很抱歉。我在考虑常规的
服务时被搞糊涂了。您确定要扩展
IntentService
?@MikeM。是的,我更新了话题。是的,你说了三遍,但我就是没听懂。我的错。那我猜是皮棉里的虫子。不知道,很抱歉。我在考虑常规的
服务时被搞糊涂了。您确定要扩展
IntentService
?@MikeM。是的,我更新了话题。是的,你说了三遍,但我就是没听懂。我的错。那我猜是皮棉里的虫子。不知道