4

Androidでリマインダーなどの機能を作りたいです。

アプリ/アクティビティが実行されていないとき、またはその UI が表示されていないときに、アプリ/アクティビティを起動したいと考えています。

希望の時間にアプリを起こしてくれる、リマインダーと同じようなものです。

どのタイプのバックグラウンド タスクやサービスも使用したことがないので、何をすべきか、またはどのタイプのクラスやデモを学習する必要があるかについてはまったくわかりません。

デモやチュートリアルのリンクを使って提案をしてもらえますか? 前もって感謝します。

4

2 に答える 2

4

こんにちは、次のコードを使用します。これはサービスです。アラーム マネージャーで保留中のインテントを使用すると、必要なときに UI を開くことができます。

import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.util.Log;
public class ScheduleCheckService extends Service{

    private Timer timer;
    final  int REFRESH=0;
    Context context;
    private PendingIntent pendingIntent;

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        context=this;
        //==============================================

        TimerTask refresher;
        // Initialization code in onCreate or similar:
        timer = new Timer();    
        refresher = new TimerTask() {
            public void run() {
              handler.sendEmptyMessage(0);
            };
        };
        // first event immediately,  following after 1 seconds each
        timer.scheduleAtFixedRate(refresher, 0,1000); 
        //=======================================================

    }

    final Handler handler = new Handler() {


        public void handleMessage(Message msg) {
              switch (msg.what) {
              case REFRESH: 
                   //your code here 


                  break;
              default:
                  break;
              }
          }
        };


         void PendingIntentmethod()
         {
         Intent myIntent = new Intent(context, YOURCLASS.class);        
         pendingIntent = PendingIntent.getActivity(context, 0, myIntent, 0);
         AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
        Calendar calendar = Calendar.getInstance();


         }




}

必要に応じてサービスを開始および停止し、マニフェスト ファイルに登録することを忘れないでください。

于 2013-03-14T14:48:22.173 に答える
1

Android Service クラスを見てください。
http://developer.android.com/reference/android/app/Service.html

このサービスから、(TimerTask を使用して) インテントを定期的に開始してアプリを開くか、通知を設定することができます。通知から、ユーザーは目的のアクティビティでアプリを開くことができます。ユーザーは、ある時点でアプリケーションを開くことを望んでいないため、2 番目のオプションをお勧めします。

これは簡単なサービスのチュートリアルです: http://www.vogella.com/articles/AndroidServices/article.html

于 2013-03-14T14:42:54.703 に答える