【发布时间】:2013-10-17 22:37:51
【问题描述】:
假设每 1 秒我如何运行一段代码?
这是我的代码片段:
主要活动:
private Context ctx;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button)findViewById(R.id.button1);
ctx = this;
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar cal = Calendar.getInstance();
int inter = 1000;
Intent i = new Intent(ctx, Brodcast.class);
PendingIntent pi = PendingIntent.getBroadcast(ctx, 0, i, 0);
am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), inter, pi);
}
});
}
广播类:
public class Brodcast extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
Toast.makeText(arg0, "This wil appear every one seconde", Toast.LENGTH_LONG).show();
Log.e("this will apear every one seconde" , "this will apear every one seconde");
}
}
但是日志和吐司都没有显示,为什么???请帮忙。
【问题讨论】:
-
你的广播在 AndroidManifest.xml 中定义了吗?
-
是的,您要么需要为广播设置意图过滤器,要么使用 Context.registerReceiver() 在代码中注册它
-
哦我忘了谢谢你如果你想写一个答案,我会接受它
标签: java android android-intent android-pendingintent android-alarms