0

時間を設定するとき、放送受信機を使用して、その特定の時間にアクティビティを開始する方法、またはボタンクリックアクション(トーストではない)などのアクションを実行する方法は??

4

2 に答える 2

0

ハンドラーが必要な場合があります。

Intent intent;
Handler handler;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    intent = new Intent(this, ChildActivity.class);
    handler = new Handler();

    setContentView(R.layout.activity_streaming_client_example);


}

特定の時間に実行するには、handler.postAtTimeを使用します

handler.postAtTime(new Runnable() {
@Override
public void run() {
        MotherActivity.this.startActivityForResult(intent, 0);
    }
}, millisecond_toStartfromUpTime);

数秒後に投稿する場合は、handler.postDelayedを使用してください

handler.postDelayed(new Runnable() {
@Override
public void run() {
        MotherActivity.this.startActivityForResult(intent, 0);
    }
}, millisecond_delayhere);
于 2012-08-10T18:49:10.950 に答える
0

そのためには、AlarmManager+Serviceが必要になる場合があります。ここで見ることができます

http://android-er.blogspot.com/2010/10/simple-example-of-alarm-service-using.html

Toastを表示するServiceクラス(リンク内)で、新しいインテントを作成し、そこにPSのstartActivity(intent)を作成します。開始する前に。この行も追加する必要があることが重要です

youintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

このような

public class AlarmService extends Service {

private Intent alarmIntent;

@Override
public void onCreate() {
    alarmIntent = new Intent(this, AlarmActivity.class);
    alarmIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}

@Override
public void onStart(Intent intent, int startId) {
    super.onStart(intent, startId);

    //Toast.makeText(this, "MyAlarmService.onStart()", Toast.LENGTH_LONG)
    //      .show();

    startActivity(alarmIntent);
}

// another implement method......
}
于 2012-08-15T04:47:27.893 に答える