0

AlarmManager アクティビティから、BroadClass アクティビティで定義されている 1 つの関数を呼び出すだけです。このために、ブロードキャストレシーバーを1つ作成し、 Alarmmanager Activity からトリガーしていますが、応答がありません

AlarmManager アクティビティ ( ここから TRIGGERING ブロードキャスト )

 package com.mainActivity;

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;

    public class AlarmManagerActivity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            Intent intent = new Intent(AlarmManagerActivity.this,BroadClass.class);
            intent.setAction("BROADCAST_ACTION");
            sendBroadcast(intent);
    }
    }

ブロードキャスト レシーバーを定義した BroadClass アクティビティ

   package com.mainActivity;


    import android.app.Activity;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.os.Bundle;
    import android.widget.Toast;



    public class BroadClass extends Activity {

        public BroadcastReceiver broadCast;

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



            registerReceiver(new BroadcastReceiver() {

                @Override
                public void onReceive(Context arg0, Intent arg1) {
                    // TODO Auto-generated method stub

                    Toast.makeText(BroadClass.this, "SDK Manager Activity", Toast.LENGTH_SHORT).show();


myFunction();   //which i want to call

                }
            },new IntentFilter("BROADCAST_ACTION"));


        }


        @Override
        protected void onResume() {
            // TODO Auto-generated method stub
            IntentFilter filter = new IntentFilter();
            filter.addAction("BROADCAST_ACTION");
            registerReceiver(broadCast, filter);

            super.onResume();


        }

public void myFunction(){

//mycode here

    }

親切に私を助けて..事前に感謝

4

2 に答える 2

0

onResumeでBroadcastReceiverセットアップを削除してみましたか?空のIntentFilterで新しいbroadcastreceiverを登録しています。

onResumeは常にonCreateの後に実行され、この場合、最初に設定されたフィルターをリセットすることを忘れないでください。

于 2012-08-19T18:57:19.490 に答える
0

変化する

Intent intent = new Intent(AlarmManagerActivity.this,BroadClass.class);

Intent intent = new Intent();

また、ブロードキャストの送信時に受信者が登録されていることを確認してください。ああ、アクティビティを終了するときにレシーバーの登録を解除することを忘れないでください。そうしないと、厄介な例外が発生します。

于 2012-08-19T18:04:27.423 に答える