質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

解決済

指定の時間になったら、メソッドを実行したいです。

edoooooo
edoooooo

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

1回答

0評価

0クリップ

3379閲覧

投稿2017/04/23 02:46

編集2022/01/12 10:58

この下の行をどのように変えればいいのでしょうか? Alarmでなく、ただ12時になったら、メソッドを呼ぶようにしたいです。
am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), mResetSender);
どうぞよろしくお願いします。

java

public void addReset(int resetHour, int reseMinute){ // Reset(リセット)を設定する mResetSender = this.getPendingIntent(); // リセットするメソッドを呼ぶ時間の設定 Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(System.currentTimeMillis()); // 設定した時刻をカレンダーに設定 cal.set(Calendar.HOUR_OF_DAY, resetHour); cal.set(Calendar.MINUTE, resetMinute); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); Toast.makeText(c, String.format("%12d時%00d分にデータをリセットするメソッドを呼びます", resetHour, resetMinute), Toast.LENGTH_LONG).show(); //⭐️この下の行をどのように変えればいいのでしょうか? Alarmでなく、ただ12時にデータをリセットするメソッドを呼びたいです。⭐️ am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), mResetSender); Log.v(TAG, cal.getTimeInMillis()+"ms"); Log.v(TAG, "12時にリセットするメソッドを呼ぶ、セット完了"); } private PendingIntent getPendingIntent() { // 12時に起動するアプリケーションを登録(リセットするメソッド) Intent intent = new Intent(c, MyResetService.class); PendingIntent pendingIntent = PendingIntent.getService(c, PendingIntent.FLAG_ONE_SHOT, intent, PendingIntent.FLAG_UPDATE_CURRENT); return pendingIntent; } }

実際にAlarmManagerを使えたコードです。<完成>
//MainActivity

java

package com.example.android.sample.easy; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private static final String TAG = MainActivity.class.getSimpleName(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); addReset(14,53); getPendingIntent(); } public void addReset(int resetHour, int resetMinute) { PendingIntent mResetSender = this.getPendingIntent(); // メソッドを呼ぶ時間の設定 java.util.Calendar cal = java.util.Calendar.getInstance(); cal.setTimeInMillis(System.currentTimeMillis()); // 設定した時刻をカレンダーに設定 cal.set(cal.HOUR_OF_DAY, resetHour); cal.set(cal.MINUTE, resetMinute); cal.set(cal.SECOND, 0); cal.set(cal.MILLISECOND, 0); Toast.makeText(this, String.format("%d時%d分にtoast表示のメソッドを呼びます", resetHour, resetMinute), Toast.LENGTH_LONG).show(); // AlramManager取得 AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); // AlarmManagerにPendingIntentを登録 am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), mResetSender); Log.v(TAG, cal.getTimeInMillis() + "ms"); Log.v(TAG, "2:30に表示するメソッドを呼ぶ、セット完了"); } private PendingIntent getPendingIntent() { Intent intent = new Intent(this, MyResetService.class); // PendingIntent pendingIntent = PendingIntent.getService(this, PendingIntent.FLAG_ONE_SHOT, intent, PendingIntent.FLAG_UPDATE_CURRENT); return pendingIntent; } }

//MyResetService

package com.example.android.sample.easy; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.util.Log; public class MyResetService extends Service { private static final String TAG = MyResetService.class.getSimpleName(); public MyResetService() {} @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { Thread thr = new Thread(null, mTask, "MyResetServiceThread"); thr.start(); Log.v(TAG,"スレッド開始"); } // アラーム用サービス Runnable mTask = new Runnable() { public void run() { Log.v(TAG,"あああああああああああ:これがLogに表示されれば"); // 役目を終えたサービスを止める MyResetService.this.stopSelf(); Log.v(TAG,"サービス停止"); } }; }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。