亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

DatabaseHandler 中的 DatabaseHandler() 不能應用于

DatabaseHandler 中的 DatabaseHandler() 不能應用于

MMTTMM 2021-09-29 17:06:44
請試試這個:// the service classimport android.app.job.JobParameters;import android.app.job.JobService;import android.util.Log;/** * JobService to be scheduled by the JobScheduler. * start another service */public class mService extends JobService {    private static final String TAG = "SyncService";    @Override    public boolean onStartJob(JobParameters params) {        Log.d("TAG", "onStartJobb");        return true;    }    @Override    public boolean onStopJob(JobParameters params) {        Log.d("TAG", "onStopJob");        return true;    }}// in main activity@RequiresApi(api = Build.VERSION_CODES.N)public void onResume(){    super.onResume();    JobScheduler scheduler = getSystemService(JobScheduler.class);    if(scheduler.getPendingJob(1) == null) {        ComponentName componentName = new ComponentName(this, mService.class);        //JobInfo.Builder builder = new JobInfo.Builder(0, serviceComponent);        JobInfo.Builder info = new JobInfo.Builder(1, componentName)                .setRequiresCharging(false)                .setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)                .setPersisted(true)                .setMinimumLatency(1 * 1000)                .setOverrideDeadline(3 * 1000)                //.setPeriodic(60 * 60 * 1000)                //.build()                ;        int resultCode = scheduler.schedule(info.build());        if (resultCode == JobScheduler.RESULT_SUCCESS) {            Log.d("TAG", "Service is not running, Job " + String.valueOf(1) + " Scheduled.");        } else {            Log.d("TAG", "Service is not running, However job scheduling failed.");        }    } else{        Log.d("TAG", "Service is already scheduled.");    }}請注意,這里是Periodic min interval的限制,不幸的是15分鐘,當我們把它設置得更小,SDK將其更改為15分鐘,并將flex interval設置為5分鐘,最終我們得到服務啟動從作業的調度時間開始大約 7-8 分鐘后。這就對了 )。這對我有用,
查看完整描述

2 回答

?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

解決方案:


取而代之的是:


public DatabaseHandler(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, Context mContext) {

    super(context, DATABASE_NAME, null, DATABASE_VERSION);

    this.mContext = mContext;

}

寫這個:


public DatabaseHandler(Context context) {

    super(context, DATABASE_NAME, null, DATABASE_VERSION);

    this.mContext = context;

}

在你的DatabaseHandler課堂上。


就是這樣。


希望能幫助到你。


查看完整回答
反對 回復 2021-09-29
?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

構造函數是初始化新創建對象的代碼塊。構造函數類似于 Java 中的實例方法,但它不是方法,因為它沒有返回類型。



 public DatabaseHandler(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, Context mContext) {

        super(context, DATABASE_NAME, null, DATABASE_VERSION);

        this.mContext = mContext;

    }


public DatabaseHandler(Context context) {

        super(context, DATABASE_NAME, null, DATABASE_VERSION);

         this.mContext = mContext;

    }

然后下面的部分將起作用。


databaseHandler = new DatabaseHandler(context);


查看完整回答
反對 回復 2021-09-29
  • 2 回答
  • 0 關注
  • 251 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號