我有一个用户创建的“竞赛”模型,其中一个字段是
public class TournamentManager extends AppCompatActivity {
Firebase ref;
FloatingActionButton fab;
EditText teamNumber;
Button cancel;
Button addTeam;
public static List teams;
ArrayAdapter <String> adapter;
ListView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tournament_manager);
Toolbar b = (Toolbar) findViewById(R.id.toolbar);
String extra = getIntent().getStringExtra("Tournament Name");
b.setTitle(extra);
setSupportActionBar(b);
int position = getIntent().getIntExtra("Position", 0);
ref = AdminMain.ref.child("" + position).child("teams");
fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addTeamDialog();
if (teams == null){
//hi
}
}
});
list = (ListView) findViewById(R.id.teamList);
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
teams = (ArrayList) dataSnapshot.getValue();
if (teams == null){
teams = new ArrayList();
}
else {
for (int i = 0; i < teams.size(); i++) {
String temp = (String) (((HashMap) teams.get(i)).get("name"));
teams.set(i, new Team(temp));
}
}
setAdapter();
}
@Override
public void onCancelled(FirebaseError firebaseError) {
//do nothing
}
});
}
public void setAdapter(){
adapter = new ArrayAdapter(TournamentManager.this, android.R.layout.simple_list_item_1, teams);
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
teams = teams;
}
});
adapter.notifyDataSetChanged();
}
public void addTeamDialog(){
LayoutInflater inflater = (LayoutInflater) getSystemService (Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.activity_add_team, null);
final AlertDialog diag = new AlertDialog.Builder(this)
.setView(v)
.create();
diag.show();
teamNumber = (EditText) diag.findViewById (R.id.editText);
addTeam = (Button) diag.findViewById(R.id.addTeam);
addTeam.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addTeam(teamNumber.getText().toString());
diag.hide();
}
});
cancel = (Button) diag.findViewById(R.id.cancel);
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
diag.hide();
}
});
}
public void addTeam(String s){
teams.add(new Team(s));
ref.setValue(teams);
if (teams.get(0) == null){
//hi
}
}
}
。
我需要一种方法来在比赛结束时运行一个功能。该功能将通知用户,更新对象等。
实现这一目标的最佳方法是什么?
答案 0 :(得分:1)
要安排任务,您可以查看here
至于这个问题,
识别日期时间字段已通过的程序
这样可行:
Contest.objects.filter(endTime__lte=timezone.now())
因此,您将有一个连续运行的任务,每隔 X 小时调用一次django命令,这将使用上述搜索来查找任何过期的竞赛。