首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IntentService与AlarmManager

IntentService与AlarmManager
EN

Stack Overflow用户
提问于 2015-10-09 05:45:37
回答 1查看 1.4K关注 0票数 1

我希望每10秒重新启动我的IntentService (它处理HTTP请求)。我试着在每一篇文章中使用AlarmManager和PendingIntent。但我的IntentService没有启动。我找不到任何理由,所以如果能提供任何帮助,我将不胜感激。

代码语言:javascript
复制
IntentService

public class MyService extends IntentService{

    public MyService() {
        super("MyService");
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        // TODO Auto-generated method stub
        Toast.makeText(getApplicationContext(), "Service Started", Toast.LENGTH_SHORT).show();
      System.out.println("Service Started");
        // POST request code here
    }
}

MainActivity

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        start();
    }

    public void start() {
         Intent intent = new Intent(this, MyService.class);
            intent.putExtra("com.hybris.proxi.triggerTime", 5000);
            PendingIntent pendingIntent = PendingIntent.getService(this,  0,  intent, 0);
            long trigger = System.currentTimeMillis() + (5*1000);
            AlarmManager am =( AlarmManager)getSystemService(Context.ALARM_SERVICE);
            am.set(AlarmManager.RTC_WAKEUP, trigger, pendingIntent);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-09 05:51:46

您可以使用以下代码:

代码语言:javascript
复制
 final Handler handler = new Handler();

        TimerTask timertask = new TimerTask() {
            @Override
            public void run() {
                handler.post(new Runnable() {
                    public void run() {
                        startService(new Intent(getApplicationContext(),
                                MyService.class));
                    }
                });
            }
        };
        Timer timer = new Timer();
        timer.schedule(timertask, 0, 10000);
        }

这将以10秒的间隔执行。

另外,将您的服务类添加到清单中:

代码语言:javascript
复制
       <service
            android:name=".MyService"
            android:enabled="true" >
        </service>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33030727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档