我正在构建一个Android应用程序,它将产品URL作为用户的输入,并检查产品的价格是否已经下降。当价格下降时,它会通过推送通知通知用户。
我有一些代码可以在亚马逊上获得产品的价格。但是,我不知道如何从现在开始。
度Acc。对我来说,服务器只会托管文件,因此可以在Internet上使用。我对吗?? 但我想要一台运行我的代码的服务器 - 它监视页面是否有任何变化。
如何从现在开始?
答案 0 :(得分:0)
你需要为亚马逊答案写一个解析器。 Aand不时向服务器发送请求。
public class TimeService extends Service {
public static final long NOTIFY_INTERVAL = 5*60 * 1000; // 5 min
private Handler mHandler = new Handler();
private Timer mTimer = null;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
if(mTimer != null) {
mTimer.cancel();
} else {
mTimer = new Timer();
}
mTimer.scheduleAtFixedRate(new TimeDisplayTimerTask(), 0, NOTIFY_INTERVAL);
}
class TimeDisplayTimerTask extends TimerTask {
@Override
public void run() {
// run on another thread
mHandler.post(new Runnable() {
@Override
public void run() {
// call request to amazon server
}
});
}
来自活动的电话
startService(new Intent(this, TimeService.class));
register in manifest
<application
.... >
.....
&lt; service android:name =“。TimeService”/&gt;
&LT; /应用程序&gt; }
答案 1 :(得分:0)
如果您想“监控亚马逊的价格”,那么您必须轮询(定期发送请求)到亚马逊。
你可以让应用程序完成所有工作(将代码放入检索亚马逊页面,解析它的价格等)但这会导致问题,如果/当页面发生变化,你想要改变轮询频率等等。具有以下优点:用户的设备可能不会被作为亚马逊的“机器人”切断。
您应该使用Web服务器本身在服务器上执行此操作以进行轮询,而不是应用程序。服务器需要支持添加要检查的项目,通知用户然后删除项目。这比听起来要复杂得多,亚马逊可能会关闭你的服务器,因为它本质上是一个“机器人” - 试图在没有“购物体验”的情况下获得定价信息。
有许多Web服务器支持在后台运行服务器进程来完成所有这些工作。您可以运行Tomcat(由Apache)运行或购买东西。如果您不熟悉Web服务器或PHP / JSP之类的东西,那么您还有很长的路要走......