我開發一個Android應用程序,並在我上一個活動調用Web服務,每5秒中的背景和現在假設他們是2個活動 活性的 活動B顯示警惕另一個活動
活動上的我每5秒獲得一次網絡服務響應,目前我的控制權在活動B上,現在我想通過保持對活動B的控制來顯示活動A的警報。
總之我要顯示一些信息在一頁的背景中傳到我現在的頁面。
我是新來的機器人,請建議我一些解決這個問題?
謝謝
我開發一個Android應用程序,並在我上一個活動調用Web服務,每5秒中的背景和現在假設他們是2個活動 活性的 活動B顯示警惕另一個活動
活動上的我每5秒獲得一次網絡服務響應,目前我的控制權在活動B上,現在我想通過保持對活動B的控制來顯示活動A的警報。
總之我要顯示一些信息在一頁的背景中傳到我現在的頁面。
我是新來的機器人,請建議我一些解決這個問題?
謝謝
基本上你需要發佈者 - 用戶模式。
http://docs.oracle.com/javase/tutorial/uiswing/events/propertychangelistener.html
檢查鏈接它是我用最簡單的發佈訂閱類, 的概念,活動B訂閱到活動A,所以當活動A具有一定特性的變化,然後它觸發了的propertyChange這是通過活動B接收,並且未來的過程是由活動B.
做用於訂閱活動A,活性B實現的PropertyChangeListener,
致電webservice感謝您理解我:)我會嘗試... –
一旦解決方案,我建議是本
在每一個可能把這個警告框位置的代碼在其活動的onResume()方法創建一個名爲callAlertBox.java類這樣
public class callAlertBox {
private static Activity activity ;
public static Activity getActivity() {
return activity;
}
public static void setActivity(Activity mactivity) {
activity = mactivity;
}
public static void showMyAlertBox(){
AlertDialog ad = new AlertDialog.Builder(activity).create();
ad.setCancelable(true); // This blocks the 'BACK' button if false
ad.setMessage("Hello World");
ad.show();
}
}
現在
@Override
protected void onResume() {
super.onResume();
callAlertBox.setActivity(Act1.this);
}
@Override
protected void onResume() {
super.onResume();
callAlertBox.setActivity(Act2.this);
}
現在你可以調用
callAlertBox.showMyAlertBox();
從任何活動
,你會得到警告框
編輯
的MainActivity.java文件
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn1 = (Button) findViewById(R.id.button1);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,Act1.class));
}
});
Button btn2 = (Button) findViewById(R.id.button2);
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,Act2.class));
}
});
Button btn3 = (Button) findViewById(R.id.button3);
btn3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,Act3.class));
}
});
new CountDownTimer(365 * 24 * 60 * 60, 5000) {
public void onTick(long millisUntilFinished) {
callAlertBox.showMyAlertBox();
}
public void onFinish() {
//Done
}
}.start();
}
@Override
protected void onResume() {
super.onResume();
callAlertBox.setActivity(MainActivity.this);
}
}
現在你可以從這裏看到我的倒數計時器會調用該方法在後臺casuing對話框出現獨立於以往活動,您的在我的情況下,這是主要的活動,在你的情況下,可能會有一些更新方法,經常被稱爲是嗎?只用那個類來調用方法
感謝您的迴應,但我會如何決定哪個活動將調用showMyAlertBox(),因爲我正在接受一項活動的回覆,現在我正在進行其他一些活動? –
我使用了主Activity中的計時器任務,並在後臺調用該方法,請等待我的代碼 –
什麼是混淆? –
小混亂 – koti
如果你想在ActivityB中顯示數據,那麼爲什麼你從ActivityA調用WS? –